9
9
import org .junit .Rule ;
10
10
import org .junit .Test ;
11
11
12
+ import java .lang .reflect .Type ;
12
13
import java .util .AbstractList ;
13
14
import java .util .AbstractMap ;
14
15
import java .util .ArrayList ;
@@ -24,6 +25,38 @@ public class TypesTest {
24
25
@ Rule
25
26
public JUnitSoftAssertions softly = new JUnitSoftAssertions ();
26
27
28
+ @ Test
29
+ public void newParameterizedType_should_create_equals_parameters_types () {
30
+ Type parameterizedType1 = Types .newParameterizedType (List .class , String .class );
31
+ Type parameterizedType2 = Types .newParameterizedType (List .class , String .class );
32
+ softly .assertThat (parameterizedType1 .equals (parameterizedType2 )).isTrue ();
33
+
34
+ Type typeReference = new TypeReference <List <String >>() {}.getType ();
35
+ softly .assertThat (typeReference .equals (parameterizedType1 )).isTrue ();
36
+ }
37
+
38
+ static class GenericHolder <T > {
39
+ final T value ;
40
+
41
+ GenericHolder (T value ) {
42
+ this .value = value ;
43
+ }
44
+
45
+ public T getValue () {
46
+ return value ;
47
+ }
48
+ }
49
+
50
+ @ Test
51
+ public void newParameterizedType_should_create_equals_inner_parameters_types () {
52
+ Type genericHolder1 = Types .newParameterizedType (GenericHolder .class , String .class );
53
+ Type genericHolder2 = Types .newParameterizedType (GenericHolder .class , String .class );
54
+ softly .assertThat (genericHolder1 .equals (genericHolder2 )).isTrue ();
55
+
56
+ Type typeReference = new TypeReference <GenericHolder <String >>() {}.getType ();
57
+ softly .assertThat (typeReference .equals (genericHolder1 )).isTrue ();
58
+ }
59
+
27
60
@ Test
28
61
public void getRawType_should_return_the_class_of_non_parametrized_types () {
29
62
softly .assertThat (Types .getRawType (Integer .class )).isEqualTo (Integer .class );
0 commit comments