@Test public void testNavigateKeyCriteria() { String direction = "friends.name"; Map<Long, Set<String>> expected = setupNavigateKeyCriteria(client); expected.put(3L, Sets.newHashSet("hello")); Map<Long, Set<String>> actual = client.navigate(direction, Criteria.where().key("age").operator(Operator.LESS_THAN) .value(30).build()); Assert.assertEquals(expected, actual); }
@Test public void testSimpleWithTime() { Set<Long> results = client.find(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90)); Timestamp t1 = Timestamp.now(); System.out.println("Importing college data into Concourse"); Importer importer = new CsvImporter(client); importer.importFile(Resources.get("/college.csv").getFile()); Assert.assertEquals(results, client.find(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).at(t1))); }
@Test public void reproA() { long record = client.add("foo", Tag.create("17")); Assert.assertEquals(ImmutableSet.of(record), client.find(Criteria.where().key("foo") .operator(Operator.EQUALS).value(Tag.create("17")))); }
@Test public void repro() { client.add("name", "Jeff", 1); Set<Long> expected = Sets.newHashSet(1L); Timestamp ts = Timestamp.now(); client.remove("name", "Jeff", 1); Assert.assertEquals(expected, client.find(Criteria.where().key("name") .operator(Operator.EQUALS).value("Jeff").at(ts))); }
@Test public void testSimple() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).build())); }
@Test(expected = TransactionException.class) public void testNoPhantomRead() { client.add("foo", 10, 1); client.stage(); client.find(Criteria.where().key("foo").operator(Operator.BETWEEN) .value(5).value(20)); client2.add("foo", 15, 2); client.find(Criteria.where().key("foo").operator(Operator.BETWEEN) .value(5).value(20)); }
@Test(expected = IllegalStateException.class) public void testCannotAddSymbolToBuiltCriteria() { Criteria criteria = Criteria.where().key("foo") .operator(Operator.EQUALS).value("bar").build(); criteria.add(new KeySymbol("baz")); }
@Test public void testTagWorks() { String value = "bar"; client.set("foo", value, 1); client.set("foo", Tag.create("`" + value + "`"), 2); Set<Long> expected = Sets.newHashSet(1L); Assert.assertEquals(expected, client.find("foo", Operator.EQUALS, value)); Assert.assertEquals(expected, client.find(Criteria.where().key("foo") .operator(Operator.EQUALS).value(value))); }
@Test public void testRoundTrip() { String value = "`bar`"; Criteria expected = Criteria.where().key("foo") .operator(Operator.EQUALS).value(value).build(); Criteria actual = Language.translateFromThriftCriteria( Language.translateToThriftCriteria(expected)); Assert.assertEquals(expected, actual); }
@Test public void testAndGroupOr() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).and() .group(Criteria.where().key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5).or() .key("total_cost_out_state") .operator(Operator.GREATER_THAN).value(50000).build()) .build())); }
@Test public void testOrGroupAnd() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).or() .group(Criteria.where().key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5) .and().key("total_cost_out_state") .operator(Operator.GREATER_THAN).value(50000).build()) .build())); }
@Test public void testSimpleAnd() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).and() .key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5).build())); }
@Test public void testSimpleOr() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).or() .key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5).build())); }
@Test public void testSimpleOrAnd() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).or() .key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5).and() .key("total_cost_out_state").operator(Operator.GREATER_THAN) .value(50000).build())); }
@Test public void testSimpleAndOr() { Assert.assertTrue(hasSameResults(Criteria.where().key("graduation_rate") .operator(Operator.GREATER_THAN).value(90).and() .key("percent_undergrad_black") .operator(Operator.GREATER_THAN_OR_EQUALS).value(5).or() .key("total_cost_out_state").operator(Operator.GREATER_THAN) .value(50000).build())); }
@Test public void testParseCclAndOr() { Criteria criteria = Criteria.where().key("a").operator(Operator.EQUALS) .value("1").and().key("b").operator(Operator.EQUALS).value(2) .or().key("c").operator(Operator.EQUALS).value(3).build(); String ccl = "a = '1' and b = 2 or c = 3"; Parser parser = Parsers.create(ccl); Assert.assertEquals(Parsing.toPostfixNotation(criteria.getSymbols()), parser.order()); }
@Test public void testComplexTObjectBinaryFormat() { Criteria criteria = Criteria.where().key("name") .operator(Operator.EQUALS).value("jeff").at(Timestamp.now()) .and().key("comapny").operator(Operator.EQUALS) .value("cinchapi").at(Timestamp.now()).build(); TCriteria tcriteria = Language.translateToThriftCriteria(criteria); ComplexTObject expected = ComplexTObject.fromJavaObject(tcriteria); ComplexTObject actual = ComplexTObject .fromByteBuffer(expected.toByteBuffer()); Assert.assertEquals(expected, actual); }