You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2021/07/30 15:48:13 UTC
[isis] branch master updated: ISIS-2794: de-duplicate publishing
test code
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new eeb06c5 ISIS-2794: de-duplicate publishing test code
eeb06c5 is described below
commit eeb06c58e23aef119de3b093d1bf51726566e865
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Jul 30 17:48:02 2021 +0200
ISIS-2794: de-duplicate publishing test code
---
.../publishing/CommandPublishingTestAbstract.java | 9 +++-
.../publishing/EntityPublishingTestAbstract.java | 9 +++-
.../ExecutionPublishingTestAbstract.java | 9 +++-
.../publishing/PropertyPublishingTestAbstract.java | 9 +++-
.../publishing/PublishingTestAbstract.java | 58 ++++++++++++++++++++++
.../publishing/jdo/JdoCommandPublishingTest.java | 32 ++----------
.../publishing/jdo/JdoEntityPublishingTest.java | 32 ++----------
.../publishing/jdo/JdoExecutionPublishingTest.java | 32 ++----------
.../publishing/jdo/JdoPropertyPublishingTest.java | 32 ++----------
.../publishing/jpa/JpaCommandPublishingTest.java | 33 ++----------
.../publishing/jpa/JpaEntityPublishingTest.java | 37 ++------------
.../publishing/jpa/JpaExecutionPublishingTest.java | 32 ++----------
.../publishing/jpa/JpaPropertyPublishingTest.java | 32 ++----------
.../publishing/PublishingTestFactoryAbstract.java | 23 ++-------
14 files changed, 127 insertions(+), 252 deletions(-)
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/CommandPublishingTestAbstract.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/CommandPublishingTestAbstract.java
index 29e3261..1db0bcc 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/CommandPublishingTestAbstract.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/CommandPublishingTestAbstract.java
@@ -40,14 +40,21 @@ import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
import lombok.val;
public abstract class CommandPublishingTestAbstract
-implements HasPersistenceStandard {
+extends PublishingTestAbstract {
@Inject private KVStoreForTesting kvStore;
+ @Override
+ protected final boolean supportsProgrammaticTesting(final ChangeScenario changeScenario) {
+ return false;
+ }
+
+ @Override
protected void given() {
CommandSubscriberForTesting.clearPublishedCommands(kvStore);
}
+ @Override
protected void verify(
final ChangeScenario changeScenario,
final VerificationStage verificationStage) {
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/EntityPublishingTestAbstract.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/EntityPublishingTestAbstract.java
index 1cb61f9..438e5e4 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/EntityPublishingTestAbstract.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/EntityPublishingTestAbstract.java
@@ -35,14 +35,21 @@ import static org.apache.isis.testdomain.publishing.subscriber.EntityChangesSubs
import static org.apache.isis.testdomain.publishing.subscriber.EntityChangesSubscriberForTesting.getUpdated;
public abstract class EntityPublishingTestAbstract
-implements HasPersistenceStandard {
+extends PublishingTestAbstract {
@Inject private KVStoreForTesting kvStore;
+ @Override
+ protected final boolean supportsProgrammaticTesting(final ChangeScenario changeScenario) {
+ return changeScenario.isSupportsProgrammatic();
+ }
+
+ @Override
protected void given() {
clearPublishedEntries(kvStore);
}
+ @Override
protected void verify(
final ChangeScenario changeScenario,
final VerificationStage verificationStage) {
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/ExecutionPublishingTestAbstract.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/ExecutionPublishingTestAbstract.java
index 1a55a2c..5ac14f1 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/ExecutionPublishingTestAbstract.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/ExecutionPublishingTestAbstract.java
@@ -44,14 +44,21 @@ import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
import lombok.val;
public abstract class ExecutionPublishingTestAbstract
-implements HasPersistenceStandard {
+extends PublishingTestAbstract {
@Inject private KVStoreForTesting kvStore;
+ @Override
+ protected final boolean supportsProgrammaticTesting(final ChangeScenario changeScenario) {
+ return false;
+ }
+
+ @Override
protected void given() {
ExecutionSubscriberForTesting.clearPublishedEntries(kvStore);
}
+ @Override
protected void verify(
final ChangeScenario changeScenario,
final VerificationStage verificationStage) {
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PropertyPublishingTestAbstract.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PropertyPublishingTestAbstract.java
index 272fd0f..8090fca 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PropertyPublishingTestAbstract.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PropertyPublishingTestAbstract.java
@@ -33,14 +33,21 @@ import org.apache.isis.testdomain.util.kv.KVStoreForTesting;
import lombok.val;
public abstract class PropertyPublishingTestAbstract
-implements HasPersistenceStandard {
+extends PublishingTestAbstract {
@Inject private KVStoreForTesting kvStore;
+ @Override
+ protected final boolean supportsProgrammaticTesting(final ChangeScenario changeScenario) {
+ return changeScenario.isSupportsProgrammatic();
+ }
+
+ @Override
protected void given() {
EntityPropertyChangeSubscriberForTesting.clearPropertyChangeEntries(kvStore);
}
+ @Override
protected void verify(
final ChangeScenario changeScenario,
final VerificationStage verificationStage) {
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PublishingTestAbstract.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PublishingTestAbstract.java
new file mode 100644
index 0000000..255a73b
--- /dev/null
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/PublishingTestAbstract.java
@@ -0,0 +1,58 @@
+package org.apache.isis.testdomain.publishing;
+
+import java.util.Collections;
+import java.util.List;
+
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.DynamicTest;
+import org.junit.jupiter.api.TestFactory;
+
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.VerificationStage;
+
+import lombok.val;
+
+public abstract class PublishingTestAbstract
+implements HasPersistenceStandard {
+
+ protected abstract PublishingTestFactoryAbstract getTestFactory();
+
+ protected abstract boolean supportsProgrammaticTesting(ChangeScenario changeScenario);
+
+ @TestFactory @DisplayName("Entity Creation")
+ final List<DynamicTest> generateTestsForCreation() {
+ return generateTests(ChangeScenario.ENTITY_CREATION);
+ }
+
+ @TestFactory @DisplayName("Entity Removal")
+ final List<DynamicTest> generateTestsForRemoval() {
+ return generateTests(ChangeScenario.ENTITY_REMOVAL);
+ }
+
+ @TestFactory @DisplayName("Property Update")
+ final List<DynamicTest> generateTestsForUpdate() {
+ return generateTests(ChangeScenario.PROPERTY_UPDATE);
+ }
+
+ @TestFactory @DisplayName("Action Execution")
+ final List<DynamicTest> generateTestsForAction() {
+ return generateTests(ChangeScenario.ACTION_INVOCATION);
+ }
+
+ protected abstract void given();
+
+ protected abstract void verify(
+ ChangeScenario changeScenario,
+ VerificationStage verificationStage);
+
+ // -- HELPER
+
+ private final List<DynamicTest> generateTests(final ChangeScenario scenario) {
+ val testFactory = getTestFactory();
+ return testFactory!=null
+ ? testFactory.generateTests(
+ scenario, supportsProgrammaticTesting(scenario), this::given, this::verify)
+ : Collections.emptyList();
+ }
+
+}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoCommandPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoCommandPublishingTest.java
index 0ce6313..9856479 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoCommandPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoCommandPublishingTest.java
@@ -18,21 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jdo;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.publishing.CommandPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJdo;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingCommandPublishing;
@SpringBootTest(
@@ -57,28 +52,9 @@ implements HasPersistenceStandardJdo {
@Inject private PublishingTestFactoryJdo testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTests(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTests(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoEntityPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoEntityPublishingTest.java
index e26796f..ee2ab67 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoEntityPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoEntityPublishingTest.java
@@ -18,21 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jdo;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.publishing.EntityPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJdo;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingEntityChangesPublishing;
@SpringBootTest(
@@ -58,28 +53,9 @@ implements HasPersistenceStandardJdo {
@Inject private PublishingTestFactoryJdo testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoExecutionPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoExecutionPublishingTest.java
index 76da9c5..af26650 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoExecutionPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoExecutionPublishingTest.java
@@ -18,21 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jdo;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.publishing.ExecutionPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJdo;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingExecutionPublishing;
@SpringBootTest(
@@ -57,28 +52,9 @@ implements HasPersistenceStandardJdo {
@Inject private PublishingTestFactoryJdo testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTests(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTests(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoPropertyPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoPropertyPublishingTest.java
index 78c4e4e..c941821 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoPropertyPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jdo/JdoPropertyPublishingTest.java
@@ -18,14 +18,9 @@
*/
package org.apache.isis.testdomain.publishing.jdo;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.MethodOrderer;
-import org.junit.jupiter.api.TestFactory;
import org.junit.jupiter.api.TestMethodOrder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
@@ -33,8 +28,8 @@ import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJdo;
import org.apache.isis.testdomain.publishing.PropertyPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJdo;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingEntityPropertyChangePublishing;
@SpringBootTest(
@@ -60,28 +55,9 @@ implements HasPersistenceStandardJdo {
@Inject private PublishingTestFactoryJdo testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaCommandPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaCommandPublishingTest.java
index 96a1e42..e3041ce 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaCommandPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaCommandPublishingTest.java
@@ -18,21 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jpa;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJpa;
import org.apache.isis.testdomain.publishing.CommandPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJpa;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingCommandPublishing;
@SpringBootTest(
@@ -57,29 +52,9 @@ implements HasPersistenceStandardJpa {
@Inject private PublishingTestFactoryJpa testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTests(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTests(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
-
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaEntityPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaEntityPublishingTest.java
index 525f03f..c0d6e01 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaEntityPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaEntityPublishingTest.java
@@ -18,22 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jpa;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJpa;
import org.apache.isis.testdomain.publishing.EntityPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJpa;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingEntityChangesPublishing;
@SpringBootTest(
@@ -57,32 +51,9 @@ implements HasPersistenceStandardJpa {
@Inject private PublishingTestFactoryJpa testFactory;
- @Disabled("'Entity Changes Tracking' currently not supported for JPA")
- @TestFactory @DisplayName("Entity Creation - n/a")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @Disabled("'Entity Changes Tracking' currently not supported for JPA")
- @TestFactory @DisplayName("Entity Removal - n/a")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @Disabled("'Entity Changes Tracking' currently not supported for JPA")
- @TestFactory @DisplayName("Property Update - n/a")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @Disabled("'Entity Changes Tracking' currently not supported for JPA")
- @TestFactory @DisplayName("Action Execution - n/a")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return null; // Entity Changes Tracking' currently not supported for JPA
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaExecutionPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaExecutionPublishingTest.java
index 8019255..95211d0 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaExecutionPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaExecutionPublishingTest.java
@@ -18,21 +18,16 @@
*/
package org.apache.isis.testdomain.publishing.jpa;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
-import org.junit.jupiter.api.TestFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJpa;
import org.apache.isis.testdomain.publishing.ExecutionPublishingTestAbstract;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJpa;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingExecutionPublishing;
@SpringBootTest(
@@ -57,28 +52,9 @@ implements HasPersistenceStandardJpa {
@Inject private PublishingTestFactoryJpa testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTests(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTests(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTests(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaPropertyPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaPropertyPublishingTest.java
index 564dfb4..1ba8f5b 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaPropertyPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/publishing/jpa/JpaPropertyPublishingTest.java
@@ -18,14 +18,9 @@
*/
package org.apache.isis.testdomain.publishing.jpa;
-import java.util.List;
-
import javax.inject.Inject;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.DynamicTest;
import org.junit.jupiter.api.MethodOrderer;
-import org.junit.jupiter.api.TestFactory;
import org.junit.jupiter.api.TestMethodOrder;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.TestPropertySource;
@@ -33,7 +28,7 @@ import org.springframework.test.context.TestPropertySource;
import org.apache.isis.core.config.presets.IsisPresets;
import org.apache.isis.testdomain.conf.Configuration_usingJpa;
import org.apache.isis.testdomain.publishing.PropertyPublishingTestAbstract;
-import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract.ChangeScenario;
+import org.apache.isis.testdomain.publishing.PublishingTestFactoryAbstract;
import org.apache.isis.testdomain.publishing.PublishingTestFactoryJpa;
import org.apache.isis.testdomain.publishing.conf.Configuration_usingEntityPropertyChangePublishing;
@@ -60,28 +55,9 @@ implements HasPersistenceStandardJpa {
@Inject private PublishingTestFactoryJpa testFactory;
- @TestFactory @DisplayName("Entity Creation")
- List<DynamicTest> generateTestsForCreation() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_CREATION, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Entity Removal")
- List<DynamicTest> generateTestsForRemoval() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ENTITY_REMOVAL, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Property Update")
- List<DynamicTest> generateTestsForUpdate() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.PROPERTY_UPDATE, this::given, this::verify);
- }
-
- @TestFactory @DisplayName("Action Execution")
- List<DynamicTest> generateTestsForAction() {
- return testFactory.generateTestsIncludeProgrammatic(
- ChangeScenario.ACTION_INVOCATION, this::given, this::verify);
+ @Override
+ protected PublishingTestFactoryAbstract getTestFactory() {
+ return testFactory;
}
}
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/publishing/PublishingTestFactoryAbstract.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/publishing/PublishingTestFactoryAbstract.java
index dc24beb..6a6195b 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/publishing/PublishingTestFactoryAbstract.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/publishing/PublishingTestFactoryAbstract.java
@@ -65,11 +65,12 @@ public abstract class PublishingTestFactoryAbstract {
/** what kind of entity change is under test */
@RequiredArgsConstructor @Getter
public static enum ChangeScenario {
- ENTITY_CREATION("creation"),
- PROPERTY_UPDATE("property update"),
- ACTION_INVOCATION("action invocation"),
- ENTITY_REMOVAL("removal");
+ ENTITY_CREATION("creation", true),
+ PROPERTY_UPDATE("property update", false),
+ ACTION_INVOCATION("action invocation", false),
+ ENTITY_REMOVAL("removal", true);
final String displayName;
+ final boolean supportsProgrammatic;
}
@Value(staticConstructor = "of")
@@ -198,22 +199,8 @@ public abstract class PublishingTestFactoryAbstract {
// -- CREATE DYNAMIC TESTS
- public final List<DynamicTest> generateTestsIncludeProgrammatic(
- final ChangeScenario changeScenario,
- final Runnable given,
- final BiConsumer<ChangeScenario, VerificationStage> verifier) {
- return generateTests(changeScenario, true, given, verifier);
- }
-
public final List<DynamicTest> generateTests(
final ChangeScenario changeScenario,
- final Runnable given,
- final BiConsumer<ChangeScenario, VerificationStage> verifier) {
- return generateTests(changeScenario, false, given, verifier);
- }
-
- private final List<DynamicTest> generateTests(
- final ChangeScenario changeScenario,
final boolean includeProgrammatic,
final Runnable given,
final BiConsumer<ChangeScenario, VerificationStage> verifier) {