gh-1098 Java's basic type

function Unit Test Add
 Resolves #1098
This commit is contained in:
kjg
2024-10-31 13:08:04 +09:00
committed by Oleg Zhurakousky
parent b32da7faf0
commit 92822663dc

View File

@@ -25,8 +25,20 @@ import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import java.util.function.DoubleConsumer;
import java.util.function.DoubleFunction;
import java.util.function.DoubleSupplier;
import java.util.function.Function;
import java.util.function.IntConsumer;
import java.util.function.IntFunction;
import java.util.function.IntSupplier;
import java.util.function.LongConsumer;
import java.util.function.LongFunction;
import java.util.function.LongSupplier;
import java.util.function.Supplier;
import java.util.function.ToDoubleFunction;
import java.util.function.ToIntFunction;
import java.util.function.ToLongFunction;
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Flux;
@@ -113,6 +125,86 @@ public class FunctionTypeUtilsTests<T> {
assertThat(FunctionTypeUtils.isMessage(methodParameter.getGenericParameterType())).isFalse();
}
@Test
public void testPrimitiveFunctionInputTypes() {
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(IntFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToIntFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(LongFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToLongFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(DoubleFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getInputType(type))).isAssignableFrom(ToDoubleFunction.class);
}
@Test
public void testPrimitiveFunctionOutputTypes() {
Type type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(IntFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(IntFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToIntFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToIntFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(LongFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(LongFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToLongFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToLongFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleConsumer.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleConsumer.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleSupplier.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleSupplier.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(DoubleFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(DoubleFunction.class);
type = FunctionTypeUtils.discoverFunctionTypeFromClass(ToDoubleFunction.class);
assertThat(FunctionTypeUtils.getRawType(FunctionTypeUtils.getOutputType(type))).isAssignableFrom(ToDoubleFunction.class);
}
void notAMessageMethod(AtomicReference<T> payload) {
}