|
12 | 12 | import ch.jalu.typeresolver.samples.typeinheritance.IntegerDoubleArgProcessorExtension; |
13 | 13 | import ch.jalu.typeresolver.samples.typeinheritance.OneArgProcessor; |
14 | 14 | import ch.jalu.typeresolver.samples.typeinheritance.StringArgProcessorExtension; |
| 15 | +import ch.jalu.typeresolver.typeimpl.WildcardTypeImpl; |
15 | 16 | import org.junit.jupiter.api.Test; |
16 | 17 |
|
17 | 18 | import java.io.Serializable; |
@@ -370,6 +371,36 @@ void shouldThrowForConstructorWithNotOverriddenMethod() { |
370 | 371 | assertThrows(UnsupportedOperationException.class, TypeInfo::new); |
371 | 372 | } |
372 | 373 |
|
| 374 | + @Test |
| 375 | + void shouldReturnWhetherIsEqualToClass() { |
| 376 | + // given / when / then |
| 377 | + assertThat(new TypeInfo(String.class).equalTo(String.class), equalTo(true)); |
| 378 | + assertThat(getType("stringList").equalTo(List.class), equalTo(true)); |
| 379 | + assertThat(new NestedTypeReference<List<? super Number>>() { }.equalTo(Number.class), equalTo(true)); |
| 380 | + |
| 381 | + assertThat(new TypeInfo(String.class).equalTo(double.class), equalTo(false)); |
| 382 | + assertThat(getType("stringList").equalTo(ArrayList.class), equalTo(false)); |
| 383 | + assertThat(getType("stringList").equalTo(Collection.class), equalTo(false)); |
| 384 | + assertThat(new TypeInfo(WildcardTypeImpl.newUnboundedWildcard()).equalTo(Object.class), equalTo(false)); |
| 385 | + } |
| 386 | + |
| 387 | + @Test |
| 388 | + void shouldReturnWhetherIsAssignableFromClass() { |
| 389 | + // given / when / then |
| 390 | + assertThat(new TypeInfo(String.class).isAssignableFrom(String.class), equalTo(true)); |
| 391 | + assertThat(new TypeInfo(CharSequence.class).isAssignableFrom(String.class), equalTo(true)); |
| 392 | + |
| 393 | + assertThat(getType("stringList").isAssignableFrom(List.class), equalTo(true)); |
| 394 | + assertThat(getType("stringList").isAssignableFrom(ArrayList.class), equalTo(true)); |
| 395 | + assertThat(new NestedTypeReference<List<? super Number>>() { }.isAssignableFrom(Number.class), equalTo(true)); |
| 396 | + assertThat(new NestedTypeReference<List<? super Number>>() { }.isAssignableFrom(Integer.class), equalTo(true)); |
| 397 | + |
| 398 | + assertThat(new TypeInfo(String.class).isAssignableFrom(double.class), equalTo(false)); |
| 399 | + assertThat(getType("stringList").isAssignableFrom(Collection.class), equalTo(false)); |
| 400 | + assertThat(new NestedTypeReference<List<? super Number>>() { }.isAssignableFrom(int.class), equalTo(false)); |
| 401 | + assertThat(new TypeInfo(WildcardTypeImpl.newUnboundedWildcard()).isAssignableFrom(Object.class), equalTo(false)); |
| 402 | + } |
| 403 | + |
373 | 404 | private static TypeInfo getType(String fieldName) { |
374 | 405 | try { |
375 | 406 | return new TypeInfo(ParameterizedTypes.class.getDeclaredField(fieldName).getGenericType()); |
|
0 commit comments