|
25 | 25 | import java.util.Map;
|
26 | 26 | import java.util.concurrent.atomic.AtomicReference;
|
27 | 27 | import java.util.function.Consumer;
|
| 28 | +import java.util.function.DoubleConsumer; |
| 29 | +import java.util.function.DoubleFunction; |
| 30 | +import java.util.function.DoubleSupplier; |
28 | 31 | 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; |
29 | 38 | import java.util.function.Supplier;
|
| 39 | +import java.util.function.ToDoubleFunction; |
| 40 | +import java.util.function.ToIntFunction; |
| 41 | +import java.util.function.ToLongFunction; |
30 | 42 |
|
31 | 43 | import org.junit.jupiter.api.Test;
|
32 | 44 | import reactor.core.publisher.Flux;
|
@@ -113,6 +125,86 @@ public void testNoNpeFromIsMessage() {
|
113 | 125 | assertThat(FunctionTypeUtils.isMessage(methodParameter.getGenericParameterType())).isFalse();
|
114 | 126 | }
|
115 | 127 |
|
| 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 | + |
116 | 208 | void notAMessageMethod(AtomicReference<T> payload) {
|
117 | 209 |
|
118 | 210 | }
|
|
0 commit comments