|
15 | 15 | import static java.lang.System.identityHashCode; |
16 | 16 | import static java.util.Arrays.asList; |
17 | 17 | import static org.junit.jupiter.api.Assertions.assertEquals; |
| 18 | +import static org.junit.jupiter.api.Assertions.assertNotEquals; |
18 | 19 |
|
19 | 20 | class DemultiplexerTest { |
20 | 21 | Demultiplexer dem; |
@@ -47,15 +48,27 @@ void test() { |
47 | 48 | dem.add(list3.get(i)); |
48 | 49 | } |
49 | 50 |
|
50 | | - assertSameElements(list1, dem.pop(list1.get(0))); |
51 | | - assertSameElements(list2, dem.pop(list2.get(0))); |
52 | | - assertSameElements(list3, dem.pop(list3.get(0))); |
| 51 | + assertSameElements(list1, dem.pop(list1.getFirst())); |
| 52 | + assertSameElements(list2, dem.pop(list2.getFirst())); |
| 53 | + assertSameElements(list3, dem.pop(list3.getFirst())); |
53 | 54 | } |
54 | 55 |
|
55 | 56 | private void assertSameElements(List<ChangeStreamDocument<BsonDocument>> expected, List<ChangeStreamDocument<BsonDocument>> actual) { |
56 | 57 | assertEquals(new IdentityList<>(expected), actual); |
57 | 58 | } |
58 | 59 |
|
| 60 | + @Test |
| 61 | + void metaTestIdentityList() { |
| 62 | + Object a = new Object(); |
| 63 | + Object b = new Object(); |
| 64 | + List<Object> list1 = asList(a, b); |
| 65 | + List<Object> list2 = asList(a, b); |
| 66 | + List<Object> list3 = asList(b, a); |
| 67 | + |
| 68 | + assertEquals(new IdentityList<>(list1), new IdentityList<>(list2)); |
| 69 | + assertNotEquals(new IdentityList<>(list1), new IdentityList<>(list3)); |
| 70 | + } |
| 71 | + |
59 | 72 | /** |
60 | 73 | * Wrapper {@link List} whose {@link #hashCode} and {@link #equals} compare |
61 | 74 | * list elements by identity rather than value. |
|
0 commit comments