From 38285e0e1147042b519957958083e537e6d90fc9 Mon Sep 17 00:00:00 2001 From: Henning Baldersheim Date: Wed, 12 Aug 2020 10:34:39 +0000 Subject: Minor unification of tests. --- .../com/yahoo/yolean/chain/ChainBuilderTest.java | 11 +++- .../yahoo/yolean/chain/ContainsSameElements.java | 74 ---------------------- .../yolean/chain/EnumeratedIdentitySetTest.java | 50 ++++++++++----- 3 files changed, 44 insertions(+), 91 deletions(-) delete mode 100644 yolean/src/test/java/com/yahoo/yolean/chain/ContainsSameElements.java (limited to 'yolean/src') diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java index 70bb0ab1397..84467283398 100644 --- a/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java +++ b/yolean/src/test/java/com/yahoo/yolean/chain/ChainBuilderTest.java @@ -4,13 +4,13 @@ package com.yahoo.yolean.chain; import org.junit.Test; import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import static com.yahoo.yolean.chain.Dependencies.after; import static com.yahoo.yolean.chain.Dependencies.before; import static com.yahoo.yolean.chain.Dependencies.provides; import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.collection.IsIterableContainingInOrder.contains; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -103,6 +103,13 @@ public class ChainBuilderTest { assertEquals("myChain", chain.id()); } + boolean equalOrder(Iterator a, Iterator b) { + while (a.hasNext() && b.hasNext()) { + if ( ! a.next().equals(b.next())) return false; + } + return a.hasNext() == b.hasNext(); + } + @Test public void filters_without_dependencies_are_not_reordered() { List filters = new ArrayList<>(); @@ -114,7 +121,7 @@ public class ChainBuilderTest { chain.add(filter); } - assertThat(chain.build(), contains(filters.toArray())); + assertTrue(equalOrder(chain.build().iterator(), filters.iterator())); } @Test(expected = ChainCycleException.class) diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/ContainsSameElements.java b/yolean/src/test/java/com/yahoo/yolean/chain/ContainsSameElements.java deleted file mode 100644 index d3fddeafbb3..00000000000 --- a/yolean/src/test/java/com/yahoo/yolean/chain/ContainsSameElements.java +++ /dev/null @@ -1,74 +0,0 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.yolean.chain; - -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.IdentityHashMap; -import java.util.List; -import java.util.Set; - -import static java.util.Collections.sort; - -/** - * @author Tony Vaagenes - */ -class ContainsSameElements extends TypeSafeMatcher> { - - private final Set identitySet; - - public static Matcher> containsSameElements(Collection collection) { - return new ContainsSameElements<>(collection); - } - - public ContainsSameElements(Collection collection) { - identitySet = toIdentitySet(collection); - } - - @SuppressWarnings("SuspiciousMethodCalls") - @Override - protected boolean matchesSafely(Collection collection2) { - for (Object elem : collection2) { - if (!identitySet.contains(elem)) { - return false; - } - } - - return collection2.size() == identitySet.size(); - } - - @Override - public void describeTo(Description description) { - description.appendText("containsSameElements "); - appendCollection(description, identitySet); - } - - private void appendCollection(Description description, Collection collection) { - description.appendValueList("{", ", ", "}", elementsToStringSorted(collection)); - } - - private List elementsToStringSorted(Collection collection) { - List result = new ArrayList<>(); - for (Object o : collection) { - result.add(o.toString()); - } - sort(result); - return result; - } - - @Override - protected void describeMismatchSafely(Collection collection, Description description) { - description.appendText("was "); - appendCollection(description, collection); - } - - public static Set toIdentitySet(Collection collection) { - Set identitySet = Collections.newSetFromMap(new IdentityHashMap()); - identitySet.addAll(collection); - return identitySet; - } -} diff --git a/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java b/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java index 5f0692e186f..30951f88162 100644 --- a/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java +++ b/yolean/src/test/java/com/yahoo/yolean/chain/EnumeratedIdentitySetTest.java @@ -5,17 +5,14 @@ import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; import java.util.IdentityHashMap; import java.util.Iterator; import java.util.List; import java.util.Set; -import static com.yahoo.yolean.chain.ContainsSameElements.containsSameElements; -import static com.yahoo.yolean.chain.ContainsSameElements.toIdentitySet; import static java.util.Collections.singleton; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.collection.IsEmptyCollection.empty; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertSame; @@ -81,6 +78,28 @@ public class EnumeratedIdentitySetTest { assertTrue(collectedElements.containsKey(element)); } } + private static boolean containsSame(Object a, Collection coll) { + for (Object b : coll) { + if (a == b) return true; + } + return false; + } + private static boolean containsSubsetSame(Collection subSet, Collection superSet) { + for (Object a : subSet) { + if ( ! containsSame(a, superSet)) return false; + } + return true; + } + + private static boolean containsAllSame(Collection a, Collection b) { + return containsSubsetSame(a, b) && containsSubsetSame(b, a); + } + + private static Set toIdentitySet(Collection collection) { + Set identitySet = Collections.newSetFromMap(new IdentityHashMap<>()); + identitySet.addAll(collection); + return identitySet; + } @Test public void toArray() { @@ -89,8 +108,9 @@ public class EnumeratedIdentitySetTest { Object[] array = set.toArray(); Element[] array2 = set.toArray(new Element[0]); - assertThat(Arrays.asList(array), containsSameElements(set)); - assertThat(Arrays.asList(array2), containsSameElements(set)); + assertTrue(set.containsAll(Arrays.asList(array))); + assertTrue(containsAllSame(Arrays.asList(array), set)); + assertTrue(containsAllSame(Arrays.asList(array2), set)); } @Test @@ -123,7 +143,7 @@ public class EnumeratedIdentitySetTest { EnumeratedIdentitySet set = new EnumeratedIdentitySet<>(); set.addAll(elements); - assertThat(set, containsSameElements(elements)); + assertTrue(containsAllSame(set, elements)); } @Test @@ -134,7 +154,7 @@ public class EnumeratedIdentitySetTest { boolean changed = set.retainAll(toIdentitySet(elements.subList(3, 10))); assertTrue(changed); - assertThat(set, containsSameElements(elements.subList(3, 5))); + assertTrue(containsAllSame(set, elements.subList(3, 5))); changed = set.retainAll(toIdentitySet(elements)); assertFalse(changed); @@ -144,7 +164,7 @@ public class EnumeratedIdentitySetTest { public void removeAll() { EnumeratedIdentitySet set = new EnumeratedIdentitySet<>(elements); set.removeAll(elements.subList(0, 5)); - assertThat(set, containsSameElements(elements.subList(5, 10))); + assertTrue(containsAllSame(set, elements.subList(5, 10))); } @Test @@ -157,8 +177,8 @@ public class EnumeratedIdentitySetTest { @Test public void removeNulls() { Element[] singletonArray = { null, elements.get(0), null }; - assertThat(EnumeratedIdentitySet.removeNulls(singletonArray), - containsSameElements(Arrays.asList(elements.get(0)))); + assertTrue(containsAllSame(EnumeratedIdentitySet.removeNulls(singletonArray), + Arrays.asList(elements.get(0)))); Element[] elementsWithNull = new Element[20]; @@ -168,7 +188,7 @@ public class EnumeratedIdentitySetTest { copyElementsTo(iterator, elementsWithNull, 4, 8); copyElementsTo(iterator, elementsWithNull, 19, 1); - assertThat(EnumeratedIdentitySet.removeNulls(elementsWithNull), containsSameElements(elements)); + assertTrue(containsAllSame(EnumeratedIdentitySet.removeNulls(elementsWithNull), elements)); } private void copyElementsTo(Iterator iterator, Element[] array, int startIndex, int numItems) { @@ -203,7 +223,7 @@ public class EnumeratedIdentitySetTest { } set.add(new Element()); - assertThat(set.numbers(), containsSameElements(range(0, 10))); + assertTrue(containsAllSame(set.numbers(), range(0, 10))); } @Test @@ -218,7 +238,7 @@ public class EnumeratedIdentitySetTest { assertTrue(set.numbers().isEmpty()); set.add(new Element()); - assertThat(set.numbers(), containsSameElements(singleton(0))); + assertTrue(containsAllSame(set.numbers(), singleton(0))); } private List range(int start, int endInclusive) { -- cgit v1.2.3