Skip to content

Commit 9282266

Browse files
junggi7777olegz
authored andcommitted
gh-1098 Java's basic type
function Unit Test Add Resolves #1098
1 parent b32da7f commit 9282266

File tree

1 file changed

+92
-0
lines changed

1 file changed

+92
-0
lines changed

spring-cloud-function-context/src/test/java/org/springframework/cloud/function/context/catalog/FunctionTypeUtilsTests.java

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,20 @@
2525
import java.util.Map;
2626
import java.util.concurrent.atomic.AtomicReference;
2727
import java.util.function.Consumer;
28+
import java.util.function.DoubleConsumer;
29+
import java.util.function.DoubleFunction;
30+
import java.util.function.DoubleSupplier;
2831
import java.util.function.Function;
32+
import java.util.function.IntConsumer;
33+
import java.util.function.IntFunction;
34+
import java.util.function.IntSupplier;
35+
import java.util.function.LongConsumer;
36+
import java.util.function.LongFunction;
37+
import java.util.function.LongSupplier;
2938
import java.util.function.Supplier;
39+
import java.util.function.ToDoubleFunction;
40+
import java.util.function.ToIntFunction;
41+
import java.util.function.ToLongFunction;
3042

3143
import org.junit.jupiter.api.Test;
3244
import reactor.core.publisher.Flux;
@@ -113,6 +125,86 @@ public void testNoNpeFromIsMessage() {
113125
assertThat(FunctionTypeUtils.isMessage(methodParameter.getGenericParameterType())).isFalse();
114126
}
115127

128+
@Test
129+
public void testPrimitiveFunctionInputTypes() {
130+
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
131+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntConsumer.class);
132+
133+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
134+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntSupplier.class);
135+
136+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
137+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntFunction.class);
138+
139+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
140+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToIntFunction.class);
141+
142+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
143+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongConsumer.class);
144+
145+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
146+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongSupplier.class);
147+
148+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
149+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongFunction.class);
150+
151+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
152+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToLongFunction.class);
153+
154+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
155+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleConsumer.class);
156+
157+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
158+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleSupplier.class);
159+
160+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
161+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleFunction.class);
162+
163+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
164+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToDoubleFunction.class);
165+
}
166+
167+
168+
@Test
169+
public void testPrimitiveFunctionOutputTypes() {
170+
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
171+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntConsumer.class);
172+
173+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
174+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntSupplier.class);
175+
176+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
177+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntFunction.class);
178+
179+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
180+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToIntFunction.class);
181+
182+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
183+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongConsumer.class);
184+
185+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
186+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongSupplier.class);
187+
188+
189+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
190+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongFunction.class);
191+
192+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
193+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToLongFunction.class);
194+
195+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
196+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleConsumer.class);
197+
198+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
199+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleSupplier.class);
200+
201+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
202+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleFunction.class);
203+
204+
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
205+
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToDoubleFunction.class);
206+
}
207+
116208
void notAMessageMethod(AtomicReference<T> payload) {
117209

118210
}

0 commit comments

Comments
 (0)