From e5c530db4988b5a3ff1f4e696fe97d0771f8fc2f Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Thu, 22 Aug 2024 20:00:53 +0100 Subject: [PATCH 1/9] chore: update entity checking if it is NoSQL and skip the return Signed-off-by: Otavio Santana --- .../ee/jakarta/tck/data/standalone/entity/EntityTests.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index 367cfd795..62e643cc5 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2396,7 +2396,12 @@ public void testUpdateQueryWithoutWhereClause() { assertEquals(120, b3.height); // increased by factor of 2 } - assertEquals(3, shared.removeAll()); + var removeAllResult = shared.removeAll(); + + if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { + //We don't have any guarantee of NoSQL, mainly on eventual consistency databases + assertEquals(3, removeAllResult); + } TestPropertyUtility.waitForEventualConsistency(); From 4da522115de62dc95f64cf84cb317899e6f952fc Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 28 Aug 2024 18:40:16 +0100 Subject: [PATCH 2/9] test: update entity tests Signed-off-by: Otavio Santana --- .../data/standalone/entity/EntityTests.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index 62e643cc5..a66ea5b54 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2353,7 +2353,14 @@ public void testTrue() { "This method also tests the addition, subtraction, and multiplication operators.") public void testUpdateQueryWithoutWhereClause() { // Ensure there is no data left over from other tests: + + try { shared.removeAll(); + } catch (UnsupportedOperationException x) { + if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { + throw x; + } + } TestPropertyUtility.waitForEventualConsistency(); @@ -2396,11 +2403,15 @@ public void testUpdateQueryWithoutWhereClause() { assertEquals(120, b3.height); // increased by factor of 2 } - var removeAllResult = shared.removeAll(); - - if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { - //We don't have any guarantee of NoSQL, mainly on eventual consistency databases + try { + var removeAllResult = shared.removeAll(); assertEquals(3, removeAllResult); + } catch (UnsupportedOperationException x) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { + // NoSQL databases might not be capable of arithmetic in updates. + } else { + throw x; + } } TestPropertyUtility.waitForEventualConsistency(); From 95270cc3fd7cfb07ae23f756186392411d421fd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Santana?= Date: Wed, 28 Aug 2024 20:04:41 +0100 Subject: [PATCH 3/9] Update tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java Co-authored-by: Nathan Rauh --- .../jakarta/tck/data/standalone/entity/EntityTests.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index a66ea5b54..9621a1982 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2407,8 +2407,12 @@ public void testUpdateQueryWithoutWhereClause() { var removeAllResult = shared.removeAll(); assertEquals(3, removeAllResult); } catch (UnsupportedOperationException x) { - if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { - // NoSQL databases might not be capable of arithmetic in updates. + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && + TestProperty.delay.isSet()) { + // NoSQL databases with eventual consistency might not be capable + // of counting removed entities. + // Use alternative approach for removing entities. + boxes.deleteAll(boxes.findAll().toList()); } else { throw x; } From 525904955659d1bf901be4a68779274f8c395064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Santana?= Date: Wed, 28 Aug 2024 20:04:51 +0100 Subject: [PATCH 4/9] Update tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java Co-authored-by: Nathan Rauh --- .../data/standalone/entity/EntityTests.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index 9621a1982..df18fb1e5 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2354,13 +2354,19 @@ public void testTrue() { public void testUpdateQueryWithoutWhereClause() { // Ensure there is no data left over from other tests: - try { - shared.removeAll(); - } catch (UnsupportedOperationException x) { - if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { - throw x; + try { + shared.removeAll(); + } catch (UnsupportedOperationException x) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && + TestProperty.delay.isSet()) { + // NoSQL databases with eventual consistency might not be capable + // of counting removed entities. + // Use alternative approach for ensuring no data is present: + boxes.deleteAll(boxes.findAll().toList()); + } else { + throw x; + } } - } TestPropertyUtility.waitForEventualConsistency(); From 4a200aede6606cfdd739bb98495bf449dd053796 Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 28 Aug 2024 20:30:37 +0100 Subject: [PATCH 5/9] chore: update suggestion to entity test Signed-off-by: Otavio Santana --- .../data/standalone/entity/EntityTests.java | 31 +++---------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index df18fb1e5..acbde3f94 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2354,20 +2354,7 @@ public void testTrue() { public void testUpdateQueryWithoutWhereClause() { // Ensure there is no data left over from other tests: - try { - shared.removeAll(); - } catch (UnsupportedOperationException x) { - if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && - TestProperty.delay.isSet()) { - // NoSQL databases with eventual consistency might not be capable - // of counting removed entities. - // Use alternative approach for ensuring no data is present: - boxes.deleteAll(boxes.findAll().toList()); - } else { - throw x; - } - } - + shared.removeAll(); TestPropertyUtility.waitForEventualConsistency(); boxes.saveAll(List.of(Box.of("TestUpdateQueryWithoutWhereClause-01", 125, 117, 44), @@ -2409,21 +2396,11 @@ public void testUpdateQueryWithoutWhereClause() { assertEquals(120, b3.height); // increased by factor of 2 } - try { - var removeAllResult = shared.removeAll(); + var removeAllResult = shared.removeAll(); + if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && !TestProperty.delay.isSet()) { + // NoSQL databases might not be capable of arithmetic in updates. Skip this check. assertEquals(3, removeAllResult); - } catch (UnsupportedOperationException x) { - if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && - TestProperty.delay.isSet()) { - // NoSQL databases with eventual consistency might not be capable - // of counting removed entities. - // Use alternative approach for removing entities. - boxes.deleteAll(boxes.findAll().toList()); - } else { - throw x; - } } - TestPropertyUtility.waitForEventualConsistency(); try { From 9a76088061e3a108277cd37f658f4c4d898b1475 Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Wed, 28 Aug 2024 20:33:21 +0100 Subject: [PATCH 6/9] docs: enhance the documentation at the tck Signed-off-by: Otavio Santana --- .../java/ee/jakarta/tck/data/standalone/entity/EntityTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index acbde3f94..f2b6aff9c 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2398,7 +2398,7 @@ public void testUpdateQueryWithoutWhereClause() { var removeAllResult = shared.removeAll(); if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && !TestProperty.delay.isSet()) { - // NoSQL databases might not be capable of arithmetic in updates. Skip this check. + // NoSQL databases might not be capable of be ACID-compliant. assertEquals(3, removeAllResult); } TestPropertyUtility.waitForEventualConsistency(); From 4cbc85606cdc29f1838c0d4396b30d8514183101 Mon Sep 17 00:00:00 2001 From: Otavio Santana Date: Thu, 29 Aug 2024 15:09:27 +0100 Subject: [PATCH 7/9] feat: revert the commit with entitytest Signed-off-by: Otavio Santana --- .../data/standalone/entity/EntityTests.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index f2b6aff9c..9b9abe452 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2354,7 +2354,19 @@ public void testTrue() { public void testUpdateQueryWithoutWhereClause() { // Ensure there is no data left over from other tests: - shared.removeAll(); + try { + shared.removeAll(); + } catch (UnsupportedOperationException x) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { + // NoSQL databases with eventual consistency might not be capable + // of counting removed entities. + // Use alternative approach for ensuring no data is present: + boxes.deleteAll(boxes.findAll().toList()); + } else { + throw x; + } + } + TestPropertyUtility.waitForEventualConsistency(); boxes.saveAll(List.of(Box.of("TestUpdateQueryWithoutWhereClause-01", 125, 117, 44), @@ -2396,11 +2408,23 @@ public void testUpdateQueryWithoutWhereClause() { assertEquals(120, b3.height); // increased by factor of 2 } + try { var removeAllResult = shared.removeAll(); if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && !TestProperty.delay.isSet()) { - // NoSQL databases might not be capable of be ACID-compliant. + // NoSQL databases might not be capable of arithmetic in updates. Skip this check. assertEquals(3, removeAllResult); } + } catch (UnsupportedOperationException x) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) ) { + // NoSQL databases with eventual consistency might not be capable + // of counting removed entities. + // Use alternative approach for removing entities. + boxes.deleteAll(boxes.findAll().toList()); + } else { + throw x; + } + } + TestPropertyUtility.waitForEventualConsistency(); try { From 549da92fb4de9de583d6a2b65b6cc7f7d381400e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Santana?= Date: Thu, 29 Aug 2024 15:40:08 +0100 Subject: [PATCH 8/9] Update tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java Co-authored-by: Nathan Rauh --- .../ee/jakarta/tck/data/standalone/entity/EntityTests.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index 9b9abe452..240b93ff1 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2409,13 +2409,10 @@ public void testUpdateQueryWithoutWhereClause() { } try { - var removeAllResult = shared.removeAll(); - if (!type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && !TestProperty.delay.isSet()) { - // NoSQL databases might not be capable of arithmetic in updates. Skip this check. + var removeAllResult = shared.removeAll(); assertEquals(3, removeAllResult); - } } catch (UnsupportedOperationException x) { - if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) ) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && TestProperty.delay.isSet()) { // NoSQL databases with eventual consistency might not be capable // of counting removed entities. // Use alternative approach for removing entities. From e7d2baa8a6eb6373f9e2bf881d479443a717e5ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Santana?= Date: Thu, 29 Aug 2024 15:40:16 +0100 Subject: [PATCH 9/9] Update tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java Co-authored-by: Nathan Rauh --- .../java/ee/jakarta/tck/data/standalone/entity/EntityTests.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java index 240b93ff1..5eaeb7b1e 100644 --- a/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java +++ b/tck/src/main/java/ee/jakarta/tck/data/standalone/entity/EntityTests.java @@ -2357,7 +2357,7 @@ public void testUpdateQueryWithoutWhereClause() { try { shared.removeAll(); } catch (UnsupportedOperationException x) { - if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH)) { + if (type.isKeywordSupportAtOrBelow(DatabaseType.GRAPH) && TestProperty.delay.isSet()) { // NoSQL databases with eventual consistency might not be capable // of counting removed entities. // Use alternative approach for ensuring no data is present: