View Javadoc
1   package de.dlr.shepard.common.util;
2   
3   import static org.junit.jupiter.api.Assertions.assertEquals;
4   import static org.junit.jupiter.api.Assertions.assertFalse;
5   import static org.junit.jupiter.api.Assertions.assertTrue;
6   
7   import java.util.ArrayList;
8   import java.util.List;
9   import org.junit.jupiter.api.Test;
10  
11  public class HasIdTest {
12  
13    HasId a = new HasId() {
14      @Override
15      public String getUniqueId() {
16        return "a";
17      }
18    };
19    HasId aEquals = new HasId() {
20      @Override
21      public String getUniqueId() {
22        return "a";
23      }
24    };
25    HasId aDiffers = new HasId() {
26      @Override
27      public String getUniqueId() {
28        return "b";
29      }
30    };
31  
32    @Test
33    public void equalsHelperTest_bothNull() {
34      assertTrue(HasId.equalsHelper((HasId) null, (HasId) null));
35    }
36  
37    @Test
38    public void equalsHelperTest_oneNull() {
39      assertFalse(HasId.equalsHelper((HasId) null, aDiffers));
40      assertFalse(HasId.equalsHelper(a, null));
41    }
42  
43    @Test
44    public void equalsHelperTest_equal() {
45      assertTrue(HasId.equalsHelper(a, a));
46      assertTrue(HasId.equalsHelper(a, aEquals));
47      assertFalse(HasId.equalsHelper(a, aDiffers));
48    }
49  
50    @Test
51    public void equalsHelpersTest_bothNull() {
52      assertTrue(HasId.areEqualSetsByUniqueId((List<HasId>) null, (List<HasId>) null));
53    }
54  
55    @Test
56    public void equalsHelpersTest_oneNull() {
57      assertFalse(HasId.areEqualSetsByUniqueId(null, List.of(aDiffers)));
58      assertFalse(HasId.areEqualSetsByUniqueId(List.of(a), null));
59    }
60  
61    @Test
62    public void equalsHelpersTest_equal() {
63      List<HasId> nullList = new ArrayList<>();
64      nullList.add(null);
65      assertTrue(HasId.areEqualSetsByUniqueId(List.of(a), List.of(aEquals)));
66      assertFalse(HasId.areEqualSetsByUniqueId(List.of(a), List.of(aDiffers)));
67      assertFalse(HasId.areEqualSetsByUniqueId(nullList, List.of(aDiffers)));
68      assertFalse(HasId.areEqualSetsByUniqueId(List.of(a, aDiffers), List.of(aDiffers)));
69      assertTrue(HasId.areEqualSetsByUniqueId(List.of(a, aDiffers), List.of(aDiffers, aEquals)));
70      assertTrue(HasId.areEqualSetsByUniqueId(List.of(a), List.of(a, a)));
71      assertTrue(HasId.areEqualSetsByUniqueId(List.of(aEquals), List.of(a, a, aEquals)));
72      ArrayList<HasId> listWithNull = new ArrayList<HasId>();
73      listWithNull.add(a);
74      listWithNull.add(null);
75      ArrayList<HasId> anotherListWithNull = new ArrayList<HasId>();
76      anotherListWithNull.add(null);
77      anotherListWithNull.add(a);
78      anotherListWithNull.add(null);
79      ArrayList<HasId> thirdListWithNull = new ArrayList<HasId>();
80      thirdListWithNull.add(aDiffers);
81      thirdListWithNull.add(null);
82      assertFalse(HasId.areEqualSetsByUniqueId(List.of(a), listWithNull));
83      assertTrue(HasId.areEqualSetsByUniqueId(listWithNull, anotherListWithNull));
84      assertFalse(HasId.areEqualSetsByUniqueId(anotherListWithNull, thirdListWithNull));
85    }
86  
87    @Test
88    public void hashCodeHelperTest() {
89      assertEquals(0, HasId.hashcodeHelper((HasId) null));
90      assertEquals("a".hashCode(), HasId.hashcodeHelper(a));
91    }
92  
93    @Test
94    public void hashCodeHelpersTest() {
95      List<HasId> nullList = new ArrayList<>();
96      nullList.add(null);
97      assertEquals(0, HasId.hashcodeHelper((List<HasId>) null));
98      assertEquals(31, HasId.hashcodeHelper(nullList));
99      assertEquals(HasId.hashcodeHelper(List.of(a)), HasId.hashcodeHelper(List.of(aEquals)));
100   }
101 }