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 2022/04/09 18:46:07 UTC

[isis] branch master updated: ISIS-2445: synchronize JPA testing when in fork mode (3)

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 92bfcb2e5a ISIS-2445: synchronize JPA testing when in fork mode (3)
92bfcb2e5a is described below

commit 92bfcb2e5a4d4570dc65c0e49930399d008f600a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Apr 9 20:46:01 2022 +0200

    ISIS-2445: synchronize JPA testing when in fork mode (3)
---
 .../injecting/jpa/JpaEntityInjectingTest.java          | 18 ++++++++++++------
 ...ransactionRollbackTest_usingInteractionService.java |  3 +++
 ...ransactionRollbackTest_usingTransactionService.java |  6 +++++-
 .../jpa/JpaTransactionScopeListenerTest.java           |  3 +++
 .../isis/testdomain/util/kv/KVStoreForTesting.java     |  2 ++
 5 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/injecting/jpa/JpaEntityInjectingTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/injecting/jpa/JpaEntityInjectingTest.java
index 3d77614af8..25a67c769b 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/injecting/jpa/JpaEntityInjectingTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/injecting/jpa/JpaEntityInjectingTest.java
@@ -30,6 +30,7 @@ import org.springframework.test.context.TestPropertySource;
 import org.springframework.transaction.annotation.Transactional;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.isis.applib.services.repository.RepositoryService;
@@ -66,10 +67,15 @@ class JpaEntityInjectingTest extends IsisIntegrationTestAbstract {
     @Inject private RepositoryService repository;
     @Inject private KVStoreForTesting kvStore;
 
-    @Test @Order(0) @Rollback(false)
+    @Test @Order(0)
     void init() {
-
+        assertNotNull(fixtureScripts);
         kvStore.requestLock(JpaTestDomainPersona.class);
+        assertNotNull(fixtureScripts);
+    }
+
+    @Test @Order(1) @Rollback(false)
+    void setup() {
 
         // cleanup
         fixtureScripts.runPersona(JpaTestDomainPersona.InventoryPurgeAll);
@@ -81,7 +87,7 @@ class JpaEntityInjectingTest extends IsisIntegrationTestAbstract {
     }
 
 
-    @Test @Order(1)
+    @Test @Order(2)
     void sampleBook_shouldHave_injectionPointsResolved() {
         log.debug("TEST 1 ENTERING");
 
@@ -95,7 +101,7 @@ class JpaEntityInjectingTest extends IsisIntegrationTestAbstract {
         log.debug("TEST 1 EXITING");
     }
 
-    @Test @Order(2)
+    @Test @Order(3)
     void sampleBook_shouldHave_injectionPointsResolved_whenFetchedAgain() {
 
         log.debug("TEST 2 ENTERING");
@@ -111,7 +117,7 @@ class JpaEntityInjectingTest extends IsisIntegrationTestAbstract {
 
     }
 
-    @Test @Order(3)
+    @Test @Order(4)
     void sampleBook_shouldHave_injectionPointsResolved_whenFetchedAgain2() {
 
         log.debug("TEST 3 ENTERING");
@@ -127,7 +133,7 @@ class JpaEntityInjectingTest extends IsisIntegrationTestAbstract {
 
     }
 
-    @Test @Order(4)
+    @Test @Order(5)
     void cleanUp() {
         kvStore.releaseLock(JpaTestDomainPersona.class);
     }
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingInteractionService.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingInteractionService.java
index 91107f7f74..3a4df498d1 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingInteractionService.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingInteractionService.java
@@ -34,6 +34,7 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
@@ -82,7 +83,9 @@ class JpaTransactionRollbackTest_usingInteractionService
     @BeforeEach
     void setUp() {
 
+        assertNotNull(fixtureScripts);
         kvStore.requestLock(JpaTestDomainPersona.class);
+        assertNotNull(fixtureScripts);
 
         // cleanup
         fixtureScripts.runPersona(JpaTestDomainPersona.InventoryPurgeAll);
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingTransactionService.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingTransactionService.java
index 11a4447139..d47e802104 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingTransactionService.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionRollbackTest_usingTransactionService.java
@@ -31,9 +31,11 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.context.event.EventListener;
 import org.springframework.stereotype.Service;
 import org.springframework.test.annotation.DirtiesContext;
+import org.springframework.test.annotation.DirtiesContext.ClassMode;
 import org.springframework.test.context.TestPropertySource;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.isis.applib.services.repository.RepositoryService;
@@ -64,7 +66,7 @@ import lombok.val;
         })
 @TestPropertySource(IsisPresets.UseLog4j2Test)
 @ExtendWith({IsisInteractionHandler.class})
-@DirtiesContext
+@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
 class JpaTransactionRollbackTest_usingTransactionService
 //extends IsisIntegrationTestAbstract
 {
@@ -80,7 +82,9 @@ class JpaTransactionRollbackTest_usingTransactionService
     @BeforeEach
     void setUp() {
 
+        assertNotNull(fixtureScripts);
         kvStore.requestLock(JpaTestDomainPersona.class);
+        assertNotNull(fixtureScripts);
 
         // cleanup
         fixtureScripts.runPersona(JpaTestDomainPersona.InventoryPurgeAll);
diff --git a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionScopeListenerTest.java b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionScopeListenerTest.java
index 86e19e5b10..13ebef26f3 100644
--- a/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionScopeListenerTest.java
+++ b/regressiontests/stable-persistence-jpa/src/test/java/org/apache/isis/testdomain/transactions/jpa/JpaTransactionScopeListenerTest.java
@@ -29,6 +29,7 @@ import org.springframework.test.annotation.DirtiesContext;
 import org.springframework.test.context.TestPropertySource;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.applib.services.repository.RepositoryService;
@@ -73,7 +74,9 @@ class JpaTransactionScopeListenerTest {
     @BeforeEach
     void setUp() {
 
+        assertNotNull(fixtureScripts);
         kvStore.requestLock(JpaTestDomainPersona.class);
+        assertNotNull(fixtureScripts);
 
         // new IsisInteractionScope with a new transaction (#1)
         interactionService.runAnonymous(()->{
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/kv/KVStoreForTesting.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/kv/KVStoreForTesting.java
index 0a65dd883a..59dcce412f 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/kv/KVStoreForTesting.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/util/kv/KVStoreForTesting.java
@@ -145,7 +145,9 @@ public class KVStoreForTesting {
         synchronized(this) {
             val latch = latchMap.get(callerType);
             if(latch!=null) {
+                log.warn("entering WAIT state until lock becomes available");
                 latch.await();
+                log.info("lock has become available");
             }
             val newLatch = new CountDownLatch(1);
             latchMap.put(callerType, newLatch);