@Test public void testWhereContainsAll() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); List<String> values = Arrays.asList("value", "valueAgain"); query.whereContainsAll("key", values); verifyCondition(query, "key", "$all", values); }
@Test public void testWhereContainedIn() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); List<String> values = Arrays.asList("value", "valueAgain"); query.whereContainedIn("key", values); verifyCondition(query, "key", "$in", values); }
@Test public void testWhereContains() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); String value = "value"; query.whereContains("key", value); verifyCondition(query, "key", "$regex", Pattern.quote(value)); }
@Test public void testWhereMatchesQuery() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); ParseQuery<ParseObject> conditionQuery = new ParseQuery<>("Test"); conditionQuery.whereExists("keyAgain"); query.whereMatchesQuery("key", conditionQuery); verifyCondition(query, "key", "$inQuery", conditionQuery.getBuilder()); }
@Test public void testWhereDoesNotMatchQuery() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); ParseQuery<ParseObject> conditionQuery = new ParseQuery<>("Test"); conditionQuery.whereExists("keyAgain"); query.whereDoesNotMatchQuery("key", conditionQuery); verifyCondition(query, "key", "$notInQuery", conditionQuery.getBuilder()); }
@Test public void testWhereGreaterThan() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.whereGreaterThan("key", "value"); verifyCondition(query, "key", "$gt", "value"); }
@Test public void testWhereGreaterThanOrEqualTo() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.whereGreaterThanOrEqualTo("key", "value"); verifyCondition(query, "key", "$gte", "value"); }
@Test public void testAddDescendingOrder() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.addDescendingOrder("key"); // We generate a state to verify the content of the builder ParseQuery.State state = query.getBuilder().build(); assertEquals(1, state.order().size()); assertTrue(state.order().contains(String.format("-%s", "key"))); }
@Test public void testSkip() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.setSkip(5); assertEquals(5, query.getSkip()); }
@Test public void testWhereMatchesWithModifiers() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.whereMatches("key", "regex", "modifiers"); verifyCondition(query, "key", "$regex", "regex"); verifyCondition(query, "key", "$options", "modifiers"); }
@Test public void testWhereStartsWith() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); String value = "prefix"; query.whereStartsWith("key", value); verifyCondition(query, "key", "$regex", buildStartsWithPattern(value)); }
@Test public void testMaxCacheAge() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.setMaxCacheAge(10); assertEquals(10, query.getMaxCacheAge()); }
@Test public void testInclude() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.include("key"); // We generate a state to verify the content of the builder ParseQuery.State state = query.getBuilder().build(); assertEquals(1, state.includes().size()); assertTrue(state.includes().contains("key")); }
@Test public void testAddAscendingOrder() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.addAscendingOrder("key"); // We generate a state to verify the content of the builder ParseQuery.State state = query.getBuilder().build(); assertEquals(1, state.order().size()); assertTrue(state.order().contains("key")); }
@Test public void testFromNetwork() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); Parse.enableLocalDatastore(null); query.fromNetwork(); assertTrue(query.isFromNetwork()); }
@Test public void testWhereWithinKilometers() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); ParseGeoPoint point = new ParseGeoPoint(10, 10); query.whereWithinKilometers("key", point, 100.0); verifyCondition(query, "key", "$nearSphere", point); verifyCondition(query, "key", "$maxDistance", 100.0 / ParseGeoPoint.EARTH_MEAN_RADIUS_KM); }
@Test public void testWhereWithinMiles() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); ParseGeoPoint point = new ParseGeoPoint(10, 10); query.whereWithinMiles("key", point, 100.0); verifyCondition(query, "key", "$nearSphere", point); verifyCondition(query, "key", "$maxDistance", 100.0 / ParseGeoPoint.EARTH_MEAN_RADIUS_MILE); }
@Test public void testConstructors() { assertEquals("_User", ParseQuery.getQuery(ParseUser.class).getClassName()); assertEquals("TestObject", ParseQuery.getQuery("TestObject").getClassName()); assertEquals("_User", new ParseQuery<>(ParseUser.class).getClassName()); assertEquals("TestObject", new ParseQuery<>("TestObject").getClassName()); ParseQuery.State.Builder<ParseObject> builder = new ParseQuery.State.Builder<>("TestObject"); ParseQuery<ParseObject> query = new ParseQuery<>(builder); assertEquals("TestObject", query.getClassName()); assertSame(builder, query.getBuilder()); }
@Test public void testClear() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); query.whereEqualTo("key", "value"); query.whereEqualTo("otherKey", "otherValue"); verifyCondition(query, "key", "value"); verifyCondition(query, "otherKey", "otherValue"); query.clear("key"); verifyCondition(query, "key", null); verifyCondition(query, "otherKey", "otherValue"); // still. }
@Test public void testFromPin() { ParseQuery<ParseObject> query = new ParseQuery<>("Test"); Parse.enableLocalDatastore(null); query.fromPin(); // We generate a state to verify the content of the builder ParseQuery.State state = query.getBuilder().build(); assertTrue(state.isFromLocalDatastore()); assertEquals(ParseObject.DEFAULT_PIN, state.pinName()); }