aboutsummaryrefslogtreecommitdiff
path: root/guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java')
-rw-r--r--guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java224
1 files changed, 118 insertions, 106 deletions
diff --git a/guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java b/guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java
index fd47bf8fd..70178b1ea 100644
--- a/guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java
+++ b/guava-tests/test/com/google/common/collect/ForwardingNavigableSetTest.java
@@ -16,14 +16,15 @@
package com.google.common.collect;
-import com.google.common.base.Function;
import com.google.common.collect.testing.SafeTreeSet;
import com.google.common.collect.testing.SetTestSuiteBuilder;
import com.google.common.collect.testing.TestStringSetGenerator;
import com.google.common.collect.testing.features.CollectionFeature;
import com.google.common.collect.testing.features.CollectionSize;
-import com.google.common.testing.EqualsTester;
-import com.google.common.testing.ForwardingWrapperTester;
+
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
@@ -31,90 +32,74 @@ import java.util.List;
import java.util.NavigableSet;
import java.util.Set;
import java.util.SortedSet;
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
/**
* Tests for {@code ForwardingNavigableSet}.
*
* @author Louis Wasserman
*/
-public class ForwardingNavigableSetTest extends TestCase {
- static class StandardImplForwardingNavigableSet<T> extends ForwardingNavigableSet<T> {
+public class ForwardingNavigableSetTest extends ForwardingSortedSetTest {
+ static class StandardImplForwardingNavigableSet<T>
+ extends ForwardingNavigableSet<T> {
private final NavigableSet<T> backingSet;
StandardImplForwardingNavigableSet(NavigableSet<T> backingSet) {
this.backingSet = backingSet;
}
- @Override
- protected NavigableSet<T> delegate() {
+ @Override protected NavigableSet<T> delegate() {
return backingSet;
}
- @Override
- public boolean equals(Object object) {
+ @Override public boolean equals(Object object) {
return standardEquals(object);
}
- @Override
- public int hashCode() {
+ @Override public int hashCode() {
return standardHashCode();
}
- @Override
- public boolean addAll(Collection<? extends T> collection) {
+ @Override public boolean addAll(Collection<? extends T> collection) {
return standardAddAll(collection);
}
- @Override
- public void clear() {
+ @Override public void clear() {
standardClear();
}
- @Override
- public boolean contains(Object object) {
+ @Override public boolean contains(Object object) {
return standardContains(object);
}
- @Override
- public boolean containsAll(Collection<?> collection) {
+ @Override public boolean containsAll(Collection<?> collection) {
return standardContainsAll(collection);
}
- @Override
- public boolean remove(Object object) {
+ @Override public boolean remove(Object object) {
return standardRemove(object);
}
- @Override
- public boolean removeAll(Collection<?> collection) {
+ @Override public boolean removeAll(Collection<?> collection) {
return standardRemoveAll(collection);
}
- @Override
- public boolean retainAll(Collection<?> collection) {
+ @Override public boolean retainAll(Collection<?> collection) {
return standardRetainAll(collection);
}
- @Override
- public Object[] toArray() {
+ @Override public Object[] toArray() {
return standardToArray();
}
- @Override
- public <T> T[] toArray(T[] array) {
+ @Override public <T> T[] toArray(T[] array) {
return standardToArray(array);
}
- @Override
- public String toString() {
+ @Override public String toString() {
return standardToString();
}
- @Override
- public SortedSet<T> subSet(T fromElement, T toElement) {
+ @Override public SortedSet<T> subSet(T fromElement, T toElement) {
return standardSubSet(fromElement, toElement);
}
@@ -158,87 +143,114 @@ public class ForwardingNavigableSetTest extends TestCase {
return standardTailSet(fromElement);
}
}
-
+
public static Test suite() {
TestSuite suite = new TestSuite();
-
+
suite.addTestSuite(ForwardingNavigableSetTest.class);
suite.addTest(
- SetTestSuiteBuilder.using(
- new TestStringSetGenerator() {
- @Override
- protected Set<String> create(String[] elements) {
- return new StandardImplForwardingNavigableSet<>(
- new SafeTreeSet<String>(Arrays.asList(elements)));
- }
-
- @Override
- public List<String> order(List<String> insertionOrder) {
- return Lists.newArrayList(Sets.newTreeSet(insertionOrder));
- }
- })
- .named("ForwardingNavigableSet[SafeTreeSet] with standard implementations")
- .withFeatures(
- CollectionSize.ANY,
- CollectionFeature.KNOWN_ORDER,
- CollectionFeature.GENERAL_PURPOSE)
- .createTestSuite());
+ SetTestSuiteBuilder.using(new TestStringSetGenerator() {
+ @Override protected Set<String> create(String[] elements) {
+ return new StandardImplForwardingNavigableSet<String>(
+ new SafeTreeSet<String>(Arrays.asList(elements)));
+ }
+
+ @Override public List<String> order(List<String> insertionOrder) {
+ return Lists.newArrayList(Sets.newTreeSet(insertionOrder));
+ }
+ }).named(
+ "ForwardingNavigableSet[SafeTreeSet] with standard implementations")
+ .withFeatures(CollectionSize.ANY, CollectionFeature.KNOWN_ORDER,
+ CollectionFeature.GENERAL_PURPOSE).createTestSuite());
suite.addTest(
- SetTestSuiteBuilder.using(
- new TestStringSetGenerator() {
- @Override
- protected Set<String> create(String[] elements) {
- SafeTreeSet<String> set = new SafeTreeSet<>(Ordering.natural().nullsFirst());
- Collections.addAll(set, elements);
- return new StandardImplForwardingNavigableSet<>(set);
- }
-
- @Override
- public List<String> order(List<String> insertionOrder) {
- return Lists.newArrayList(Sets.newTreeSet(insertionOrder));
- }
- })
- .named(
- "ForwardingNavigableSet[SafeTreeSet[Ordering.natural.nullsFirst]]"
- + " with standard implementations")
- .withFeatures(
- CollectionSize.ANY,
- CollectionFeature.KNOWN_ORDER,
- CollectionFeature.GENERAL_PURPOSE,
- CollectionFeature.ALLOWS_NULL_VALUES)
- .createTestSuite());
-
+ SetTestSuiteBuilder.using(new TestStringSetGenerator() {
+ @Override protected Set<String> create(String[] elements) {
+ SafeTreeSet<String> set = new SafeTreeSet<String>(Ordering.natural().nullsFirst());
+ Collections.addAll(set, elements);
+ return new StandardImplForwardingNavigableSet<String>(set);
+ }
+
+ @Override public List<String> order(List<String> insertionOrder) {
+ return Lists.newArrayList(Sets.newTreeSet(insertionOrder));
+ }
+ }).named(
+ "ForwardingNavigableSet[SafeTreeSet[Ordering.natural.nullsFirst]]"
+ + " with standard implementations")
+ .withFeatures(CollectionSize.ANY, CollectionFeature.KNOWN_ORDER,
+ CollectionFeature.GENERAL_PURPOSE, CollectionFeature.ALLOWS_NULL_VALUES)
+ .createTestSuite());
+
return suite;
}
+
+ @Override public void setUp() throws Exception {
+ super.setUp();
+ /*
+ * Class parameters must be raw, so we can't create a proxy with generic
+ * type arguments. The created proxy only records calls and returns null, so
+ * the type is irrelevant at runtime.
+ */
+ @SuppressWarnings("unchecked")
+ final NavigableSet<String> navigableSet
+ = createProxyInstance(NavigableSet.class);
+ forward = new ForwardingNavigableSet<String>() {
+ @Override protected NavigableSet<String> delegate() {
+ return navigableSet;
+ }
+ };
+ }
- @SuppressWarnings({"rawtypes", "unchecked"})
- public void testForwarding() {
- new ForwardingWrapperTester()
- .testForwarding(
- NavigableSet.class,
- new Function<NavigableSet, NavigableSet>() {
- @Override
- public NavigableSet apply(NavigableSet delegate) {
- return wrap(delegate);
- }
- });
+ public void testLower() {
+ forward().lower("a");
+ assertEquals("[lower(Object)]", getCalls());
}
- public void testEquals() {
- NavigableSet<String> set1 = ImmutableSortedSet.of("one");
- NavigableSet<String> set2 = ImmutableSortedSet.of("two");
- new EqualsTester()
- .addEqualityGroup(set1, wrap(set1), wrap(set1))
- .addEqualityGroup(set2, wrap(set2))
- .testEquals();
+ public void testFloor() {
+ forward().floor("a");
+ assertEquals("[floor(Object)]", getCalls());
}
- private static <T> NavigableSet<T> wrap(final NavigableSet<T> delegate) {
- return new ForwardingNavigableSet<T>() {
- @Override
- protected NavigableSet<T> delegate() {
- return delegate;
- }
- };
+ public void testCeiling() {
+ forward().ceiling("a");
+ assertEquals("[ceiling(Object)]", getCalls());
+ }
+
+ public void testHigher() {
+ forward().higher("a");
+ assertEquals("[higher(Object)]", getCalls());
+ }
+
+ public void testPollFirst() {
+ forward().pollFirst();
+ assertEquals("[pollFirst]", getCalls());
+ }
+
+ public void testPollLast() {
+ forward().pollLast();
+ assertEquals("[pollLast]", getCalls());
+ }
+
+ public void testDescendingIterator() {
+ forward().descendingIterator();
+ assertEquals("[descendingIterator]", getCalls());
+ }
+
+ public void testHeadSet_K_Boolean() {
+ forward().headSet("key", false);
+ assertEquals("[headSet(Object,boolean)]", getCalls());
+ }
+
+ public void testSubSet_K_Boolean_K_Boolean() {
+ forward().subSet("a", true, "b", false);
+ assertEquals("[subSet(Object,boolean,Object,boolean)]", getCalls());
+ }
+
+ public void testTailSet_K_Boolean() {
+ forward().tailSet("key", false);
+ assertEquals("[tailSet(Object,boolean)]", getCalls());
+ }
+
+ @Override NavigableSet<String> forward() {
+ return (NavigableSet<String>) super.forward();
}
}