summaryrefslogtreecommitdiffstats
path: root/predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java')
-rw-r--r--predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java62
1 files changed, 62 insertions, 0 deletions
diff --git a/predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java b/predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java
new file mode 100644
index 00000000000..d9f6714d8c8
--- /dev/null
+++ b/predicate-search-core/src/test/java/com/yahoo/document/predicate/RangeEdgePartitionTest.java
@@ -0,0 +1,62 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.document.predicate;
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author <a href="mailto:magnarn@yahoo-inc.com">Magnar Nedland</a>
+ */
+public class RangeEdgePartitionTest {
+
+ @Test
+ public void requireThatRangeEdgePartitionIsAValue() {
+ assertTrue(PredicateValue.class.isAssignableFrom(RangeEdgePartition.class));
+ }
+
+ @Test
+ public void requireThatConstructorsWork() {
+ RangeEdgePartition part = new RangeEdgePartition("foo=10", 10, 0, -1);
+ assertEquals("foo=10", part.getLabel());
+ assertEquals(0, part.getLowerBound());
+ assertEquals(-1, part.getUpperBound());
+ }
+
+ @Test
+ public void requireThatCloneIsImplemented() throws CloneNotSupportedException {
+ RangeEdgePartition node1 = new RangeEdgePartition("foo=10", 10, 0, 0);
+ RangeEdgePartition node2 = node1.clone();
+ assertEquals(node1, node2);
+ assertNotSame(node1, node2);
+ }
+
+ @Test
+ public void requireThatHashCodeIsImplemented() {
+ assertEquals(new RangeEdgePartition("foo=-10", 10, 2, 3).hashCode(),
+ new RangeEdgePartition("foo=-10", 10, 2, 3).hashCode());
+ }
+
+ @Test
+ public void requireThatEqualsIsImplemented() {
+ RangeEdgePartition lhs = new RangeEdgePartition("foo=10", 10, 5, 10);
+ assertTrue(lhs.equals(lhs));
+ assertFalse(lhs.equals(new Object()));
+
+ RangeEdgePartition rhs = new RangeEdgePartition("foo=20", 20, 0, 0);
+ assertFalse(lhs.equals(rhs));
+ rhs = new RangeEdgePartition("foo=10", 10, 5, 10);
+ assertTrue(lhs.equals(rhs));
+ assertFalse(lhs.equals(new RangeEdgePartition("foo=10", 10, 5, 11)));
+ assertFalse(lhs.equals(new RangeEdgePartition("foo=10", 10, 6, 10)));
+ assertFalse(lhs.equals(new RangeEdgePartition("foo=10", 11, 5, 10)));
+ assertFalse(lhs.equals(new RangeEdgePartition("foo=11", 10, 5, 10)));
+ }
+
+ @Test
+ public void requireThatKeyIsEscapedInToString() {
+ assertEquals("foo=10+[2..3]", new RangeEdgePartition("foo=10", 10, 2, 3).toString());
+ assertEquals("'\\foo=10'+[2..3]", new RangeEdgePartition("\foo=10", 10, 2, 3).toString());
+ assertEquals("'\\x27foo\\x27=10'+[2..3]", new RangeEdgePartition("'foo'=10", 10, 2, 3).toString());
+ }}