aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/test
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-08-09 13:34:18 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-08-09 14:38:18 +0000
commit840aacbbae61a4d0162d2decb534a6fe5fae030a (patch)
tree5077bdbf21edac80543673cca052b46ec108db18 /document/src/test
parent247c57f87631a684fa72f410a8c896900c01e303 (diff)
Remove visitor ordering and order selection.
Diffstat (limited to 'document/src/test')
-rw-r--r--document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java67
-rw-r--r--document/src/test/java/com/yahoo/document/DocumentIdTestCase.java119
-rw-r--r--document/src/test/java/com/yahoo/document/GlobalIdTestCase.java8
-rw-r--r--document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java16
-rw-r--r--document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java88
-rw-r--r--document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java5
-rw-r--r--document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java50
7 files changed, 81 insertions, 272 deletions
diff --git a/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java b/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java
index d10d4242f6f..c2e1dbd611c 100644
--- a/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java
+++ b/document/src/test/java/com/yahoo/document/BucketIdFactoryTestCase.java
@@ -1,10 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.document;
-import com.yahoo.document.BucketIdFactory;
-import com.yahoo.document.BucketId;
-import com.yahoo.document.DocumentId;
-import com.yahoo.document.idstring.*;
+import com.yahoo.document.idstring.DocIdString;
+import com.yahoo.document.idstring.IdIdString;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
@@ -44,23 +42,20 @@ public class BucketIdFactoryTestCase {
}
@Test
+ @SuppressWarnings("deprecation")
public void testBucketGeneration() {
+ // TODO Rewrite in time for VESPA 8 to use IdIdString
BucketIdFactory factory = new BucketIdFactory(32, 26, 6);
DocumentId doc1 = new DocumentId(new DocIdString("ns", "spec"));
DocumentId doc2 = new DocumentId(new DocIdString("ns2", "spec"));
DocumentId doc3 = new DocumentId(new DocIdString("ns", "spec2"));
- DocumentId userDoc1 = new DocumentId(new UserDocIdString("ns", 0x12, "spec"));
- DocumentId userDoc2 = new DocumentId(new UserDocIdString("ns2", 0x12, "spec2"));
- DocumentId userDoc3 = new DocumentId(new UserDocIdString("ns", 0x13, "spec"));
- DocumentId groupDoc1 = new DocumentId(new GroupDocIdString("ns", "yahoo.com", "spec"));
- DocumentId groupDoc2 = new DocumentId(new GroupDocIdString("ns2", "yahoo.com", "spec2"));
- DocumentId groupDoc3 = new DocumentId(new GroupDocIdString("ns", "yahoo", "spec"));
- DocumentId orderDoc1 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1268182861, "foo"));
- DocumentId orderDoc2 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1205110861, "foo"));
- DocumentId orderDoc3 = new DocumentId(new OrderDocIdString("ns", "13", 31, 19, 1205715661, "foo"));
- DocumentId orderDoc4 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 2, "foo"));
- DocumentId orderDoc5 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 4, "foo"));
- DocumentId orderDoc6 = new DocumentId(new OrderDocIdString("ns", "13", 4, 0, 11, "foo"));
+ DocumentId userDoc1 = new DocumentId(new IdIdString("ns", "mytype","n=18", "spec"));
+ DocumentId userDoc2 = new DocumentId(new IdIdString("ns", "mytype","n=18", "spec2"));
+ DocumentId userDoc3 = new DocumentId(new IdIdString("ns", "mytype","n=19", "spec"));
+ DocumentId groupDoc1 = new DocumentId(new IdIdString("ns", "mytype", "g=yahoo.com", "spec"));
+ DocumentId groupDoc2 = new DocumentId(new IdIdString("ns2", "mytype", "g=yahoo.com", "spec2"));
+ DocumentId groupDoc3 = new DocumentId(new IdIdString("ns", "mytype", "g=yahoo", "spec"));
+
BucketId docBucket1 = factory.getBucketId(doc1);
BucketId docBucket2 = factory.getBucketId(doc2);
@@ -71,32 +66,18 @@ public class BucketIdFactoryTestCase {
BucketId groupDocBucket1 = factory.getBucketId(groupDoc1);
BucketId groupDocBucket2 = factory.getBucketId(groupDoc2);
BucketId groupDocBucket3 = factory.getBucketId(groupDoc3);
- BucketId orderDocBucket1 = factory.getBucketId(orderDoc1);
- BucketId orderDocBucket2 = factory.getBucketId(orderDoc2);
- BucketId orderDocBucket3 = factory.getBucketId(orderDoc3);
- BucketId orderDocBucket4 = factory.getBucketId(orderDoc4);
- BucketId orderDocBucket5 = factory.getBucketId(orderDoc5);
- BucketId orderDocBucket6 = factory.getBucketId(orderDoc6);
-
- assertEquals(new Hex(0xe99703f200000012l), new Hex(userDocBucket1.getRawId()));
- assertEquals(new Hex(0xebfa518a00000012l), new Hex(userDocBucket2.getRawId()));
- assertEquals(new Hex(0xeac1850800000013l), new Hex(userDocBucket3.getRawId()));
-
- assertEquals(new Hex(0xe90ce4b09a1acd50l), new Hex(groupDocBucket1.getRawId()));
- assertEquals(new Hex(0xe9cedaa49a1acd50l), new Hex(groupDocBucket2.getRawId()));
- assertEquals(new Hex(0xe8cdb18bafe81f24l), new Hex(groupDocBucket3.getRawId()));
-
- assertEquals(new Hex(0xe980c9abd5fd8d11l), new Hex(docBucket1.getRawId()));
- assertEquals(new Hex(0xeafe870c5f9c37b9l), new Hex(docBucket2.getRawId()));
- assertEquals(new Hex(0xeaebe9473ecbcd69l), new Hex(docBucket3.getRawId()));
-
- assertEquals(new Hex(0xeae764e90000000dl), new Hex(orderDocBucket1.getRawId()));
- assertEquals(new Hex(0xeacb85f10000000dl), new Hex(orderDocBucket2.getRawId()));
- assertEquals(new Hex(0xea68ddf10000000dl), new Hex(orderDocBucket3.getRawId()));
-
- assertEquals(new Hex(0xe87526540000000dl), new Hex(orderDocBucket4.getRawId()));
- assertEquals(new Hex(0xea59f8f20000000dl), new Hex(orderDocBucket5.getRawId()));
- assertEquals(new Hex(0xe9eb703d0000000dl), new Hex(orderDocBucket6.getRawId()));
+
+ assertEquals(new Hex(0xeb3089a300000012L), new Hex(userDocBucket1.getRawId()));
+ assertEquals(new Hex(0xea780a8700000012L), new Hex(userDocBucket2.getRawId()));
+ assertEquals(new Hex(0xe80d16fc00000013L), new Hex(userDocBucket3.getRawId()));
+
+ assertEquals(new Hex(0xeb82f2be9a1acd50L), new Hex(groupDocBucket1.getRawId()));
+ assertEquals(new Hex(0xebff6e379a1acd50L), new Hex(groupDocBucket2.getRawId()));
+ assertEquals(new Hex(0xe91b9600afe81f24L), new Hex(groupDocBucket3.getRawId()));
+
+ assertEquals(new Hex(0xe980c9abd5fd8d11L), new Hex(docBucket1.getRawId()));
+ assertEquals(new Hex(0xeafe870c5f9c37b9L), new Hex(docBucket2.getRawId()));
+ assertEquals(new Hex(0xeaebe9473ecbcd69L), new Hex(docBucket3.getRawId()));
}
//Actually a BucketId testcase ...
@@ -113,7 +94,7 @@ public class BucketIdFactoryTestCase {
@Test
public void testBidContainsDocId() {
- DocumentId docId = new DocumentId("userdoc:recovery:18:99999");
+ DocumentId docId = new DocumentId("id:ns:recovery:n=18:99999");
BucketIdFactory factory = new BucketIdFactory(32, 26, 6);
BucketId bid = new BucketId(16, 0x12L);
assert(bid.contains(docId, factory));
diff --git a/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java b/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java
index bd769889363..b8f60b5d9bc 100644
--- a/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java
+++ b/document/src/test/java/com/yahoo/document/DocumentIdTestCase.java
@@ -1,16 +1,18 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.document;
-import com.yahoo.document.idstring.*;
+import com.yahoo.document.idstring.IdIdString;
import com.yahoo.vespa.objects.BufferSerializer;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
-import java.math.BigInteger;
-import java.io.*;
+import java.io.BufferedReader;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
import java.util.regex.Pattern;
import java.util.Arrays;
@@ -70,10 +72,6 @@ public class DocumentIdTestCase {
//valid URIs
new DocumentId("doc:blabla:something");
new DocumentId("doc:doc:doc");
- new DocumentId("userdoc:bla:2387:");
- new DocumentId("userdoc:bar:0:");
- new DocumentId("userdoc:bar:18446744073709551615:");
- new DocumentId("userdoc:foo:15:bar");
new DocumentId("id:namespace:type:n=42:whatever");
new DocumentId("id:namespace:type::whatever");
} catch (IllegalArgumentException iae) {
@@ -87,13 +85,6 @@ public class DocumentIdTestCase {
checkInvalidUri("doc:::");
checkInvalidUri("doc::/");
checkInvalidUri("doc");
- checkInvalidUri("userdoc:");
- checkInvalidUri("userdoc::");
- checkInvalidUri("userdoc:::");
- checkInvalidUri("userdoc:::/");
- checkInvalidUri("userdoc");
- checkInvalidUri("userdoc:-87987//");
- checkInvalidUri("userdoc:18446744073709551620/bar/");
checkInvalidUri("id:namespace:type");
checkInvalidUri("id:namespace:type:key-values");
checkInvalidUri("id:namespace:type:n=0,n=1:foo");
@@ -118,7 +109,7 @@ public class DocumentIdTestCase {
//Compares globalId with C++ implementation located in
// ~document-HEAD/document/src/tests/cpp-globalidbucketids.txt
@Test
- public void testCalculateGlobalId() throws IOException{
+ public void testCalculateGlobalId() throws IOException {
String file = "src/tests/cpp-globalidbucketids.txt";
BufferedReader fr = new BufferedReader(new FileReader(file));
@@ -178,91 +169,8 @@ public class DocumentIdTestCase {
}
@Test
- public void testGroupdoc() {
- try {
- //valid
- new DocumentId("groupdoc:blabla:something:jkl");
- new DocumentId("groupdoc:doc:doc:asd");
- new DocumentId("groupdoc:bar:0:a");
- new DocumentId("groupdoc:bar:18446744073709551615:");
- new DocumentId("groupdoc:foo:15:bar");
- } catch (IllegalArgumentException iae) {
- fail(iae.getMessage());
- }
- }
-
- @Test
- public void testInvalidGroupdoc() {
- checkInvalidUri("grouppdoc:blabla:something");
- checkInvalidUri("groupdoc:blablasomething");
- }
-
- @Test
- public void testUriNamespace() {
- DocumentId docId = new DocumentId("doc:bar:foo");
- assertEquals("doc:bar:foo", docId.toString());
- assertEquals("doc", docId.getScheme().getType().toString());
- assertEquals("bar", docId.getScheme().getNamespace());
- assertEquals("foo", docId.getScheme().getNamespaceSpecific());
-
- docId = new DocumentId("userdoc:ns:90:boo");
- assertEquals("userdoc:ns:90:boo", docId.toString());
- assertEquals("userdoc", docId.getScheme().getType().toString());
- assertEquals("ns", docId.getScheme().getNamespace());
- assertEquals("boo", docId.getScheme().getNamespaceSpecific());
- assertEquals(90l, ((UserDocIdString) docId.getScheme()).getUserId());
-
- docId = new DocumentId("userdoc:ns:18446744073709551615:boo");
- assertEquals("userdoc:ns:18446744073709551615:boo", docId.toString());
- assertEquals("userdoc", docId.getScheme().getType().toString());
- assertEquals("ns", docId.getScheme().getNamespace());
- assertEquals("boo", docId.getScheme().getNamespaceSpecific());
- assertEquals(new BigInteger("18446744073709551615").longValue(), ((UserDocIdString) docId.getScheme()).getUserId());
-
- docId = new DocumentId("userdoc:ns:9223372036854775808:boo");
- assertEquals("userdoc:ns:9223372036854775808:boo", docId.toString());
- assertEquals("userdoc", docId.getScheme().getType().toString());
- assertEquals("ns", docId.getScheme().getNamespace());
- assertEquals("boo", docId.getScheme().getNamespaceSpecific());
- assertEquals(new BigInteger("9223372036854775808").longValue(), ((UserDocIdString) docId.getScheme()).getUserId());
-
- BigInteger negativeUserId = new BigInteger("F00DCAFEDEADBABE", 16);
- assertEquals(0xF00DCAFEDEADBABEl, negativeUserId.longValue());
- docId = new DocumentId("userdoc:ns:"+negativeUserId+":bar");
- assertEquals("userdoc:ns:17297704939806374590:bar", docId.toString());
- assertEquals(negativeUserId.longValue(), ((UserDocIdString) docId.getScheme()).getUserId());
-
- docId = new DocumentId("orderdoc(31,19):ns2:1234:1268182861:foo");
- assertEquals("orderdoc(31,19):ns2:1234:1268182861:foo", docId.toString());
- assertEquals("orderdoc", docId.getScheme().getType().toString());
- assertEquals("ns2", docId.getScheme().getNamespace());
- assertEquals("foo", docId.getScheme().getNamespaceSpecific());
- assertEquals(31, ((OrderDocIdString)docId.getScheme()).getWidthBits());
- assertEquals(19, ((OrderDocIdString)docId.getScheme()).getDivisionBits());
- assertEquals("1234", ((OrderDocIdString)docId.getScheme()).getGroup());
- assertEquals(1234, ((OrderDocIdString)docId.getScheme()).getUserId());
- assertEquals(1268182861, ((OrderDocIdString)docId.getScheme()).getOrdering());
- }
-
- @Test
public void testIdStrings() {
- DocumentId docId;
- docId = new DocumentId(new DocIdString("test", "baaaa"));
- assertEquals("doc:test:baaaa", docId.toString());
- assertFalse(docId.hasDocType());
-
- docId = new DocumentId(new UserDocIdString("test", 54, "something"));
- assertEquals("userdoc:test:54:something", docId.toString());
- assertFalse(docId.hasDocType());
-
- docId = new DocumentId(new UserDocIdString("test", 0xFFFFFFFFFFFFFFFFl, "something"));
- assertEquals("userdoc:test:18446744073709551615:something", docId.toString());
-
- //sign flipped
- docId = new DocumentId(new UserDocIdString("test", -8193, "something"));
- assertEquals("userdoc:test:18446744073709543423:something", docId.toString());
-
- docId = new DocumentId(new IdIdString("namespace", "type", "g=group", "foobar"));
+ DocumentId docId = new DocumentId(new IdIdString("namespace", "type", "g=group", "foobar"));
assertEquals("id:namespace:type:g=group:foobar", docId.toString());
assertTrue(docId.hasDocType());
assertEquals("type", docId.getDocType());
@@ -283,26 +191,15 @@ public class DocumentIdTestCase {
assertTrue(user.getScheme().hasNumber());
assertEquals(42, user.getScheme().getNumber());
- user = new DocumentId("userdoc:ns:42:foo");
- assertFalse(user.getScheme().hasGroup());
- assertTrue(user.getScheme().hasNumber());
- assertEquals(42, user.getScheme().getNumber());
-
DocumentId group = new DocumentId("id:ns:type:g=mygroup:foo");
assertTrue(group.getScheme().hasGroup());
assertFalse(group.getScheme().hasNumber());
assertEquals("mygroup", group.getScheme().getGroup());
- group = new DocumentId("groupdoc:ns:mygroup:foo");
+ group = new DocumentId("id:ns:type:g=mygroup:foo");
assertTrue(group.getScheme().hasGroup());
assertFalse(group.getScheme().hasNumber());
assertEquals("mygroup", group.getScheme().getGroup());
-
- DocumentId order = new DocumentId("orderdoc(5,2):ns:42:007:foo");
- assertTrue(order.getScheme().hasGroup());
- assertTrue(order.getScheme().hasNumber());
- assertEquals("42", order.getScheme().getGroup());
- assertEquals(42, order.getScheme().getNumber());
}
@Test
diff --git a/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java b/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java
index c134f8e7770..cb818f12d3f 100644
--- a/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java
+++ b/document/src/test/java/com/yahoo/document/GlobalIdTestCase.java
@@ -86,10 +86,10 @@ public class GlobalIdTestCase {
@Test
public void testToBucketId() {
- verifyGidToBucketIdMapping("userdoc:ns:1:abc");
- verifyGidToBucketIdMapping("userdoc:ns:1000:abc");
- verifyGidToBucketIdMapping("userdoc:hsgf:18446744073700000000:dfdfsdfg");
- verifyGidToBucketIdMapping("groupdoc:ns:somegroup:hmm");
+ verifyGidToBucketIdMapping("id:ns:mytype:n=1:abc");
+ verifyGidToBucketIdMapping("id:ns:mytype:n=1000:abc");
+ verifyGidToBucketIdMapping("id:hsgf:mytype:n=9146744073700000000:dfdfsdfg");
+ verifyGidToBucketIdMapping("id:ns:mytype:g=somegroup:hmm");
verifyGidToBucketIdMapping("doc:foo:test");
verifyGidToBucketIdMapping("doc:myns:http://foo.bar");
verifyGidToBucketIdMapping("doc:jsrthsdf:a234aleingzldkifvasdfgadf");
diff --git a/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java b/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java
index a1ad09c2329..aea5ea7fda8 100644
--- a/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java
+++ b/document/src/test/java/com/yahoo/document/select/BucketSelectorTestCase.java
@@ -17,11 +17,11 @@ public class BucketSelectorTestCase {
@Test
public void testExpressions() throws Exception {
- assertBucketCount("id = \"userdoc:ns:123:foobar\"", 1);
- assertBucketCount("id = \"userdoc:ns:123:foo*\"", 0);
- assertBucketCount("id == \"userdoc:ns:123:f?oo*\"", 1);
- assertBucketCount("id =~ \"userdoc:ns:123:foo*\"", 0);
- assertBucketCount("id =~ \"userdoc:ns:123:foo?\"", 0);
+ assertBucketCount("id = \"id:ns:mytype:n=123:foobar\"", 1);
+ assertBucketCount("id = \"id:ns:mytype:n=123:foo*\"", 0);
+ assertBucketCount("id == \"id:ns:mytype:n=123:f?oo*\"", 1);
+ assertBucketCount("id =~ \"id:ns:mytype:n=123:foo*\"", 0);
+ assertBucketCount("id =~ \"id:ns:mytype:n=123:foo?\"", 0);
assertBucketCount("id.user = 123", 1);
assertBucketCount("id.user == 123", 1);
assertBucketCount("id.group = \"yahoo.com\"", 1);
@@ -39,7 +39,7 @@ public class BucketSelectorTestCase {
assertBucket("id.bucket = 0x4000000000003018", new BucketId(16, 12312));
assertBucket("id.bucket == 0x4000000000000258", new BucketId(16, 600));
- assertBucket("id = \"userdoc:ns:123:foobar\"", new BucketId(0xeafff5320000007bL));
+ assertBucket("id = \"id:ns:mytype:n=123:foobar\"", new BucketId(0xe8bd6e280000007bL));
assertBucket("id.user = 123", new BucketId(32, 123));
assertBucket("id.group = \"yahoo.com\"", new BucketId(32, 0x035837189a1acd50L));
@@ -52,8 +52,8 @@ public class BucketSelectorTestCase {
@Test
public void parenthesis_enclosed_expressions_inherit_bucket_selectors_from_children() throws Exception {
- assertBucketCount("(id == \"userdoc:ns:123:foobar\")", 1);
- assertBucket("(id = \"userdoc:ns:123:foobar\")", new BucketId(0xeafff5320000007bL));
+ assertBucketCount("(id == \"id:ns:mytype:n=123:foobar\")", 1);
+ assertBucket("(id = \"id:ns:mytype:n=123:foobar\")", new BucketId(0xe8bd6e280000007bL));
assertBucketCount("(id.group = \"yahoo.com\" and (testdoctype1.hstringval == \"Doe\"))", 1);
assertBucket("(id.group = \"yahoo.com\" and (testdoctype1 and (id.namespace == 'foo')))", new BucketId(32, 0x035837189a1acd50L));
}
diff --git a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
index 846f85e925a..6457a3deb82 100644
--- a/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
+++ b/document/src/test/java/com/yahoo/document/select/DocumentSelectorTestCase.java
@@ -74,7 +74,6 @@ public class DocumentSelectorTestCase {
assertParse("id.namespace = \"*\"");
assertParse("id.hash() > 0");
assertParse("id.namespace.hash() > 0");
- assertParse("id.order(5,2) > 100");
assertParse("music.artist = \"*\"");
assertParse("music.artist.lowercase() = \"*\"");
assertParse("music_.artist = \"*\"");
@@ -187,9 +186,9 @@ public class DocumentSelectorTestCase {
assertParse("mytype");
// Test document id.
- assertParse("id == \"userdoc:ns:mytest\"");
+ assertParse("id == \"id:ns:mytype::mytest\"");
assertParse("id.namespace == \"myspace\"");
- assertParse("id.scheme == \"userdoc\"");
+ assertParse("id.scheme == \"id\"");
assertParse("id.type == \"mytype\"");
assertParse("id.user == 1234");
assertParse("id.bucket == 8388608", "id.bucket == 0x800000");
@@ -260,7 +259,7 @@ public class DocumentSelectorTestCase {
public void testDocumentRemove() throws ParseException {
assertEquals(Result.TRUE, evaluate("test", createRemove("id:ns:test::1")));
assertEquals(Result.FALSE, evaluate("test", createRemove("id:ns:null::1")));
- assertEquals(Result.FALSE, evaluate("test", createRemove("userdoc:test:1234:1")));
+ assertEquals(Result.TRUE, evaluate("test", createRemove("id:ns:test:n=1234:1")));
assertEquals(Result.INVALID, evaluate("test.hint", createRemove("id:ns:test::1")));
assertEquals(Result.FALSE, evaluate("test.hint", createRemove("id:ns:null::1")));
assertEquals(Result.INVALID, evaluate("test.hint == 0", createRemove("id:ns:test::1")));
@@ -276,7 +275,7 @@ public class DocumentSelectorTestCase {
public void testDocumentGet() throws ParseException {
assertEquals(Result.TRUE, evaluate("test", createGet("id:ns:test::1")));
assertEquals(Result.FALSE, evaluate("test", createGet("id:ns:null::1")));
- assertEquals(Result.FALSE, evaluate("test", createGet("userdoc:test:1234:1")));
+ assertEquals(Result.TRUE, evaluate("test", createGet("id:ns:test:n=1234:1")));
assertEquals(Result.INVALID, evaluate("test.hint", createGet("id:ns:test::1")));
assertEquals(Result.FALSE, evaluate("test.hint", createGet("id:ns:null::1")));
assertEquals(Result.INVALID, evaluate("test.hint == 0", createGet("id:ns:test::1")));
@@ -328,9 +327,8 @@ public class DocumentSelectorTestCase {
List<DocumentPut> documents = new ArrayList<>();
documents.add(createDocument("doc:myspace:anything", 24, 2.0f, "foo", "bar"));
documents.add(createDocument("doc:anotherspace:foo", 13, 4.1f, "bar", "foo"));
- documents.add(createDocument("userdoc:myspace:1234:mail1", 15, 1.0f, "some", "some"));
- documents.add(createDocument("userdoc:myspace:5678:bar", 14, 2.4f, "Yet", "More"));
- documents.add(createDocument("orderdoc(31,19):ns2:1234:5678:foo", 14, 2.4f, "Yet", "More"));
+ documents.add(createDocument("id:myspace:test:n=1234:mail1", 15, 1.0f, "some", "some"));
+ documents.add(createDocument("id:myspace:test:n=5678:bar", 14, 2.4f, "Yet", "More"));
documents.add(createDocument("id:myspace:test:n=2345:mail2", 15, 1.0f, "bar", "baz"));
documents.add(createDocument("id:myspace:test:g=mygroup:qux", 15, 1.0f, "quux", "corge"));
documents.add(createDocument("doc:myspace:missingint", null, 2.0f, null, "bar"));
@@ -354,16 +352,14 @@ public class DocumentSelectorTestCase {
documents.get(1).getDocument().setFieldValue("structarray", aval);
MapFieldValue<IntegerFieldValue, StringFieldValue> mval =
- new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("mymap")
- .getDataType());
+ new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("mymap").getDataType());
mval.put(new IntegerFieldValue(3), new StringFieldValue("a"));
mval.put(new IntegerFieldValue(5), new StringFieldValue("b"));
mval.put(new IntegerFieldValue(7), new StringFieldValue("c"));
documents.get(1).getDocument().setFieldValue("mymap", mval);
MapFieldValue<StringFieldValue, Array> amval =
- new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("structarrmap")
- .getDataType());
+ new MapFieldValue<>((MapDataType)documents.get(1).getDocument().getField("structarrmap").getDataType());
amval.put(new StringFieldValue("foo"), aval);
Array<Struct> abval = new Array<>(documents.get(1).getDocument().getField("structarray").getDataType());
@@ -381,8 +377,7 @@ public class DocumentSelectorTestCase {
amval.put(new StringFieldValue("bar"), abval);
documents.get(1).getDocument().setFieldValue("structarrmap", amval);
- WeightedSet<StringFieldValue> wsval = new WeightedSet<>(documents.get(1).getDocument().getField("stringweightedset")
- .getDataType());
+ WeightedSet<StringFieldValue> wsval = new WeightedSet<>(documents.get(1).getDocument().getField("stringweightedset").getDataType());
wsval.add(new StringFieldValue("foo"));
wsval.add(new StringFieldValue("val1"));
wsval.add(new StringFieldValue("val2"));
@@ -396,16 +391,14 @@ public class DocumentSelectorTestCase {
Array aval2 = new Array(documents.get(2).getDocument().getField("structarray").getDataType());
documents.get(2).getDocument().setFieldValue("structarray", aval2);
- Array<IntegerFieldValue> intvals1 = new Array<>(documents.get(0).getDocument().getField("intarray")
- .getDataType());
+ Array<IntegerFieldValue> intvals1 = new Array<>(documents.get(0).getDocument().getField("intarray").getDataType());
intvals1.add(new IntegerFieldValue(12));
intvals1.add(new IntegerFieldValue(40));
intvals1.add(new IntegerFieldValue(60));
intvals1.add(new IntegerFieldValue(84));
documents.get(0).getDocument().setFieldValue("intarray", intvals1);
- Array<IntegerFieldValue> intvals2 = new Array<>(documents.get(1).getDocument().getField("intarray")
- .getDataType());
+ Array<IntegerFieldValue> intvals2 = new Array<>(documents.get(1).getDocument().getField("intarray").getDataType());
intvals2.add(new IntegerFieldValue(3));
intvals2.add(new IntegerFieldValue(56));
intvals2.add(new IntegerFieldValue(23));
@@ -485,18 +478,19 @@ public class DocumentSelectorTestCase {
assertEquals(Result.TRUE, evaluate("test.hint + 1 > 13", documents.get(1)));
// Case where field is not present (i.e. null) is defined for (in)equality comparisons, but
// not for other relations.
- assertEquals(Result.TRUE, evaluate("test.hint != 1234", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("test.hint == 1234", documents.get(7)));
- assertEquals(Result.INVALID, evaluate("test.hint < 1234", documents.get(7)));
+ DocumentPut doc1234 = documents.get(6);
+ assertEquals(Result.TRUE, evaluate("test.hint != 1234", doc1234));
+ assertEquals(Result.FALSE, evaluate("test.hint == 1234", doc1234));
+ assertEquals(Result.INVALID, evaluate("test.hint < 1234", doc1234));
// Propagation of Invalid through logical operators should match C++ implementation
- assertEquals(Result.FALSE, evaluate("test.hint < 1234 and false", documents.get(7)));
- assertEquals(Result.INVALID, evaluate("test.hint < 1234 and true", documents.get(7)));
- assertEquals(Result.TRUE, evaluate("test.hint < 1234 or true", documents.get(7)));
- assertEquals(Result.INVALID, evaluate("test.hint < 1234 or false", documents.get(7)));
+ assertEquals(Result.FALSE, evaluate("test.hint < 1234 and false", doc1234));
+ assertEquals(Result.INVALID, evaluate("test.hint < 1234 and true", doc1234));
+ assertEquals(Result.TRUE, evaluate("test.hint < 1234 or true", doc1234));
+ assertEquals(Result.INVALID, evaluate("test.hint < 1234 or false", doc1234));
// Must be possible to predicate a sub-expression on the presence of a field without
// propagating up an Invalid value from the comparison.
- assertEquals(Result.FALSE, evaluate("test.hint and test.hint < 1234", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("test.hint != null and test.hint < 1234", documents.get(7)));
+ assertEquals(Result.FALSE, evaluate("test.hint and test.hint < 1234", doc1234));
+ assertEquals(Result.FALSE, evaluate("test.hint != null and test.hint < 1234", doc1234));
// Document types.
assertEquals(Result.TRUE, evaluate("test", documents.get(0)));
@@ -508,46 +502,38 @@ public class DocumentSelectorTestCase {
// Field existence
assertEquals(Result.TRUE, evaluate("test.hint", documents.get(0)));
assertEquals(Result.TRUE, evaluate("test.hstring", documents.get(0)));
- assertEquals(Result.FALSE, evaluate("test.hint", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("test.hstring", documents.get(7)));
- assertEquals(Result.TRUE, evaluate("not test.hint", documents.get(7)));
- assertEquals(Result.TRUE, evaluate("not test.hstring", documents.get(7)));
+ assertEquals(Result.FALSE, evaluate("test.hint", doc1234));
+ assertEquals(Result.FALSE, evaluate("test.hstring", doc1234));
+ assertEquals(Result.TRUE, evaluate("not test.hint", doc1234));
+ assertEquals(Result.TRUE, evaluate("not test.hstring", doc1234));
assertEquals(Result.TRUE, evaluate("test.hint != null", documents.get(0)));
assertEquals(Result.TRUE, evaluate("null != test.hint", documents.get(0)));
assertEquals(Result.FALSE, evaluate("test.hint == null", documents.get(0)));
assertEquals(Result.FALSE, evaluate("null == test.hint", documents.get(0)));
- assertEquals(Result.TRUE, evaluate("null == test.hint", documents.get(7)));
- assertEquals(Result.TRUE, evaluate("test.hint == null", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("test.hint != null", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("null != test.hint", documents.get(7)));
+ assertEquals(Result.TRUE, evaluate("null == test.hint", doc1234));
+ assertEquals(Result.TRUE, evaluate("test.hint == null", doc1234));
+ assertEquals(Result.FALSE, evaluate("test.hint != null", doc1234));
+ assertEquals(Result.FALSE, evaluate("null != test.hint", doc1234));
- assertEquals(Result.TRUE, evaluate("test.hint or true", documents.get(7)));
- assertEquals(Result.TRUE, evaluate("not test.hint and true", documents.get(7)));
- assertEquals(Result.FALSE, evaluate("not test.hint and false", documents.get(7)));
+ assertEquals(Result.TRUE, evaluate("test.hint or true", doc1234));
+ assertEquals(Result.TRUE, evaluate("not test.hint and true", doc1234));
+ assertEquals(Result.FALSE, evaluate("not test.hint and false", doc1234));
// Id values.
assertEquals(Result.TRUE, evaluate("id == \"doc:myspace:anything\"", documents.get(0)));
assertEquals(Result.TRUE, evaluate(" iD== \"doc:myspace:anything\" ", documents.get(0)));
assertEquals(Result.FALSE, evaluate("id == \"doc:myspa:nything\"", documents.get(0)));
assertEquals(Result.TRUE, evaluate("Id.scHeme == \"doc\"", documents.get(0)));
- assertEquals(Result.FALSE, evaluate("id.scheme == \"userdoc\"", documents.get(0)));
- assertEquals(Result.TRUE, evaluate("id.type == \"test\"", documents.get(5)));
- assertEquals(Result.FALSE, evaluate("id.type == \"wrong\"", documents.get(5)));
+ assertEquals(Result.FALSE, evaluate("id.scheme == \"id\"", documents.get(0)));
+ assertEquals(Result.TRUE, evaluate("id.type == \"test\"", documents.get(4)));
+ assertEquals(Result.FALSE, evaluate("id.type == \"wrong\"", documents.get(4)));
assertEquals(Result.TRUE, evaluate("Id.namespaCe == \"myspace\"", documents.get(0)));
assertEquals(Result.FALSE, evaluate("id.NaMespace == \"pace\"", documents.get(0)));
assertEquals(Result.TRUE, evaluate("id.specific == \"anything\"", documents.get(0)));
assertEquals(Result.TRUE, evaluate("id.user=1234", documents.get(2)));
- assertEquals(Result.TRUE, evaluate("id.user=1234", documents.get(4)));
- assertEquals(Result.TRUE, evaluate("id.group=\"1234\"", documents.get(4)));
- assertEquals(Result.TRUE, evaluate("id.user=2345", documents.get(5)));
- assertEquals(Result.TRUE, evaluate("id.group=\"mygroup\"", documents.get(6)));
-
- assertEquals(Result.TRUE, evaluate("id.order(31,19)=5678", documents.get(4)));
- assertEquals(Result.TRUE, evaluate("id.order(31,19)<=5678", documents.get(4)));
- assertEquals(Result.FALSE, evaluate("id.order(31,19)>5678", documents.get(4)));
- assertEquals(Result.FALSE, evaluate("id.order(25,23)==5678", documents.get(4)));
- assertEquals(Result.FALSE, evaluate("id.order(31,19)=5678", documents.get(3)));
+ assertEquals(Result.TRUE, evaluate("id.user=2345", documents.get(4)));
+ assertEquals(Result.TRUE, evaluate("id.group=\"mygroup\"", documents.get(5)));
assertError("id.user == 1234", documents.get(0), "User identifier is null.");
assertError("id.group == 1234", documents.get(3), "Group identifier is null.");
diff --git a/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java b/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java
index 25aca22b108..5e06085b8c9 100644
--- a/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java
+++ b/document/src/test/java/com/yahoo/document/select/LogicalNodeTestCase.java
@@ -35,11 +35,6 @@ public class LogicalNodeTestCase {
}
@Override
- public OrderingSpecification getOrdering(int order) {
- return node.getOrdering(order);
- }
-
- @Override
public void accept(Visitor visitor) {
node.accept(visitor);
}
diff --git a/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java b/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java
deleted file mode 100644
index 8c0f7402704..00000000000
--- a/document/src/test/java/com/yahoo/document/select/OrderingSpecificationTestCase.java
+++ /dev/null
@@ -1,50 +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.document.select;
-
-import org.junit.Test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-/**
- * @author HÃ¥kon Humberset
- */
-public class OrderingSpecificationTestCase {
-
- @Test
- public void testExpressions() throws Exception {
- assertSelection("id.order(10,10) < 100", OrderingSpecification.DESCENDING,
- new OrderingSpecification(OrderingSpecification.DESCENDING, (long)99, (short)10, (short)10));
- assertSelection("id.order(10,10) <= 100", OrderingSpecification.DESCENDING,
- new OrderingSpecification(OrderingSpecification.DESCENDING, (long)100, (short)10, (short)10));
- assertSelection("id.order(10,10) > 100", OrderingSpecification.DESCENDING, null);
- assertSelection("id.order(10,10) > 100", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)101, (short)10, (short)10));
- assertSelection("id.user==1234 AND id.order(10,10) > 100", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)101, (short)10, (short)10));
- assertSelection("id.order(10,10) >= 100", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)100, (short)10, (short)10));
- assertSelection("id.order(10,10) == 100", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)100, (short)10, (short)10));
- assertSelection("id.order(10,10) = 100", OrderingSpecification.DESCENDING,
- new OrderingSpecification(OrderingSpecification.DESCENDING, (long)100, (short)10, (short)10));
- assertSelection("id.order(10,10) > 30 AND id.order(10,10) < 100", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)31, (short)10, (short)10));
- assertSelection("id.order(10,10) > 30 AND id.order(10,10) < 100", OrderingSpecification.DESCENDING,
- new OrderingSpecification(OrderingSpecification.DESCENDING, (long)99, (short)10, (short)10));
- assertSelection("id.order(10,10) > 30 OR id.order(10,10) > 70", OrderingSpecification.ASCENDING,
- new OrderingSpecification(OrderingSpecification.ASCENDING, (long)31, (short)10, (short)10));
- assertSelection("id.order(10,10) < 30 OR id.order(10,10) < 70", OrderingSpecification.DESCENDING,
- new OrderingSpecification(OrderingSpecification.DESCENDING, (long)69, (short)10, (short)10));
- }
-
- public void assertSelection(String selection, int ordering, OrderingSpecification wanted) throws Exception {
- DocumentSelector selector = new DocumentSelector(selection);
- if (wanted != null) {
- assertEquals(wanted, selector.getOrdering(ordering));
- } else {
- assertNull(selector.getOrdering(ordering));
- }
- }
-
-}