diff --git a/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java b/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java index 663815a62f..15296d686b 100644 --- a/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java +++ b/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java @@ -558,6 +558,48 @@ public void not() { } } + @Test + public void emptyGroup() { + populateTestRealm(); // create TEST_DATA_SIZE objects + RealmResults fives = realm.where(AllTypes.class) + .equalTo(AllTypes.FIELD_LONG, 5) + .beginGroup() + .endGroup() + .findAll(); + // Only on object with value 5 + assertEquals(1, fives.size()); + } + + @Test + public void or_emptyGroupThrows() { + populateTestRealm(); // create TEST_DATA_SIZE objects + RealmQuery query = realm.where(AllTypes.class) + .equalTo(AllTypes.FIELD_LONG, 5) + .or() + .beginGroup() + .endGroup(); + try { + query.findAll(); + } catch (UnsupportedOperationException ignore) { + // Expected exception + } + } + + @Test + public void not_emptyGroup_throws() { + RealmQuery query = realm.where(AllTypes.class) + .equalTo(AllTypes.FIELD_LONG, 5) + .or() + .not() + .beginGroup() + .endGroup(); + try { + query.findAll(); + } catch (UnsupportedOperationException ignore) { + // Expected exception + } + } + @Test (expected = UnsupportedOperationException.class) public void not_aloneThrows() { // a not() alone must fail