From e4f6a52204abc815298e24d7caaa0a81fe3e6afa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus=20R=C3=B8rbech?= Date: Fri, 4 Dec 2020 15:17:52 +0100 Subject: [PATCH 1/2] Add tests for queries with empty groups --- .../java/io/realm/RealmQueryTests.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) 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..071a222a91 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,41 @@ 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 (expected = UnsupportedOperationException.class) + public void or_emptyGroupThrows() { + populateTestRealm(); // create TEST_DATA_SIZE objects + RealmResults fives = realm.where(AllTypes.class) + .equalTo(AllTypes.FIELD_LONG, 5) + .or() + .beginGroup() + .endGroup() + .findAll(); + } + + @Test (expected = UnsupportedOperationException.class) + public void not_emptyGroup_throws() { + populateTestRealm(); // create TEST_DATA_SIZE objects + realm.where(AllTypes.class) + .equalTo(AllTypes.FIELD_LONG, 5) + .or() + .not() + .beginGroup() + .endGroup() + .findAll(); + } + @Test (expected = UnsupportedOperationException.class) public void not_aloneThrows() { // a not() alone must fail From fe78b9c6c87ae5ebfcf8cac155a25db4cfcf25fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Claus=20R=C3=B8rbech?= Date: Fri, 4 Dec 2020 15:55:23 +0100 Subject: [PATCH 2/2] Updates according to code review --- .../java/io/realm/RealmQueryTests.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) 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 071a222a91..15296d686b 100644 --- a/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java +++ b/realm/realm-library/src/androidTest/java/io/realm/RealmQueryTests.java @@ -570,27 +570,34 @@ public void emptyGroup() { assertEquals(1, fives.size()); } - @Test (expected = UnsupportedOperationException.class) + @Test public void or_emptyGroupThrows() { populateTestRealm(); // create TEST_DATA_SIZE objects - RealmResults fives = realm.where(AllTypes.class) + RealmQuery query = realm.where(AllTypes.class) .equalTo(AllTypes.FIELD_LONG, 5) .or() .beginGroup() - .endGroup() - .findAll(); + .endGroup(); + try { + query.findAll(); + } catch (UnsupportedOperationException ignore) { + // Expected exception + } } - @Test (expected = UnsupportedOperationException.class) + @Test public void not_emptyGroup_throws() { - populateTestRealm(); // create TEST_DATA_SIZE objects - realm.where(AllTypes.class) + RealmQuery query = realm.where(AllTypes.class) .equalTo(AllTypes.FIELD_LONG, 5) .or() .not() .beginGroup() - .endGroup() - .findAll(); + .endGroup(); + try { + query.findAll(); + } catch (UnsupportedOperationException ignore) { + // Expected exception + } } @Test (expected = UnsupportedOperationException.class)