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 2019/06/06 07:39:52 UTC

[isis] branch 2112_SpringBoot updated: ISIS-2112: makes the JdoBootstrappingTest a barebone blueprint ...

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 2112_SpringBoot
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2112_SpringBoot by this push:
     new 095769b  ISIS-2112: makes the JdoBootstrappingTest a barebone blueprint ...
095769b is described below

commit 095769bd03b3ff14721d1bc2c3e4f5abda0fbd66
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jun 6 09:39:46 2019 +0200

    ISIS-2112: makes the JdoBootstrappingTest a barebone blueprint ...
    
    ... for integration testing in general
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2112
---
 ...og4j2-test.xml => log4j2-debug-persistence.xml} |   0
 example/misc/smoketest/log4j2-test.xml             |   8 +-
 .../isis/testdomain/tests/AuditerServiceTest.java  |   2 +-
 .../testdomain/tests/JdoBootstrappingTest.java     | 157 +++++++++++----------
 ...ava => JdoBootstrappingTest_usingFixtures.java} |  44 ++----
 .../isis/testdomain/tests/JdoTransactionTest.java  | 138 ------------------
 .../testdomain/tests/PublisherServiceTest.java     |   2 +-
 .../tests/{H2Console.java => Util_H2Console.java}  |   2 +-
 8 files changed, 101 insertions(+), 252 deletions(-)

diff --git a/example/misc/smoketest/log4j2-test.xml b/example/misc/smoketest/log4j2-debug-persistence.xml
similarity index 100%
copy from example/misc/smoketest/log4j2-test.xml
copy to example/misc/smoketest/log4j2-debug-persistence.xml
diff --git a/example/misc/smoketest/log4j2-test.xml b/example/misc/smoketest/log4j2-test.xml
index 6095740..3cb094e 100644
--- a/example/misc/smoketest/log4j2-test.xml
+++ b/example/misc/smoketest/log4j2-test.xml
@@ -23,10 +23,10 @@
 		<Logger name="org.hibernate.validator.internal.util.Version" level="warn" />
 		<logger name="org.springframework.boot.actuate.endpoint.jmx" level="warn"/>
 		
-		<logger name="DataNucleus.Persistence" level="debug"/>
-		<logger name="DataNucleus.Transaction" level="debug"/>
-		<logger name="DataNucleus.Datastore.Schema" level="debug"/>
-		<logger name="DataNucleus.Datastore.Native" level="debug"/>
+		<logger name="DataNucleus.Persistence" level="info"/>
+		<logger name="DataNucleus.Transaction" level="info"/>
+		<logger name="DataNucleus.Datastore.Schema" level="info"/>
+		<logger name="DataNucleus.Datastore.Native" level="info"/>
 		
 		<Root level="info">
 			<AppenderRef ref="Console" />
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/AuditerServiceTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/AuditerServiceTest.java
index 19a2385..d7edf12 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/AuditerServiceTest.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/AuditerServiceTest.java
@@ -41,7 +41,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
 import lombok.val;
 
 /**
- * Depends on {@link JdoBootstrappingTest} to succeed.
+ * Depends on {@link JdoBootstrappingTest_usingFixtures} to succeed.
  */
 @Disabled //TODO[2112] activate tests
 class AuditerServiceTest {
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
index c313b32..9338808 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
@@ -19,9 +19,12 @@ package org.apache.isis.testdomain.tests;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import java.sql.SQLException;
+import java.util.HashSet;
+import java.util.Set;
+
 import javax.inject.Inject;
 
-import org.apache.isis.applib.fixturescripts.FixtureScripts;
 import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
 import org.apache.isis.applib.services.repository.RepositoryService;
 import org.apache.isis.applib.services.xactn.TransactionService;
@@ -29,9 +32,12 @@ import org.apache.isis.core.commons.collections.Bin;
 import org.apache.isis.core.runtime.system.internal.InitialisationSession;
 import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 import org.apache.isis.runtime.spring.IsisBoot;
+import org.apache.isis.testdomain.jdo.Book;
 import org.apache.isis.testdomain.jdo.Inventory;
 import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
-import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
+import org.apache.isis.testdomain.jdo.Product;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -42,89 +48,96 @@ import lombok.val;
 
 @ExtendWith(SpringExtension.class)
 @SpringBootTest(
-        classes = {
-                //HeadlessTransactionSupportDefault.class,
-                IsisBoot.class,
-                FixtureScriptsDefault.class,
-                JdoTestDomainModule.class,
-                },
-        properties = {
-        		"logging.config=log4j2-test.xml",
-                //"isis.reflector.introspector.parallelize=false",
-                //"logging.level.org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract=TRACE"
-                }
-        )
+		classes = {
+				IsisBoot.class,
+				FixtureScriptsDefault.class,
+				JdoTestDomainModule.class,
+		},
+		properties = {
+				"logging.config=log4j2-test.xml",
+				//"isis.reflector.introspector.parallelize=false",
+				//"logging.level.org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract=TRACE"
+		}
+		)
 class JdoBootstrappingTest {
 
-    @Inject IsisSessionFactory isisSessionFactory;
-    @Inject TransactionService transactionService;
-    @Inject FixtureScripts fixtureScripts;
-    @Inject RepositoryService repository;
-    
+	@Inject private IsisSessionFactory isisSessionFactory;
+	@Inject private TransactionService transactionService;
+	@Inject private RepositoryService repository;
+
+	@BeforeAll
+	static void launchH2Console() throws SQLException {
+		// for troubleshooting ... 
+		//Util_H2Console.main(null);
+	}
+	
     @BeforeEach
     void beforeEach() {
-        System.out.println("================== START ====================");
+    	isisSessionFactory.openSession(new InitialisationSession());
+    	transactionService.nextTransaction();
     }
     
-    void setUp() {
-    	
-    	System.out.println("================== OPEN SESSION ====================");
-        
-        isisSessionFactory.openSession(new InitialisationSession());
-        
-        System.out.println("================== BEGIN TX ====================");
-        
-        transactionService.nextTransaction();
-        
-        System.out.println("================== RUN FIXTURE 1 ====================");
-        
-        // cleanup
-        fixtureScripts.runBuilderScript(
-                JdoTestDomainPersona.PurgeAll.builder());
-        
-        System.out.println("================== RUN FIXTURE 2 ====================");
+    @AfterEach
+    void afterEach() {
+    	isisSessionFactory.closeSession();
+    }
+	
+	void cleanUp() {
 
-        // given
-        fixtureScripts.runBuilderScript(
-                JdoTestDomainPersona.InventoryWith1Book.builder());
-        
-        System.out.println("================== END TX ====================");
-        
-        transactionService.nextTransaction(); //transactions.endTransaction();
-        
-        System.out.println("================== CLOSE SESSION ====================");
+        repository.allInstances(Inventory.class)
+        .forEach(repository::remove);
         
-        isisSessionFactory.closeSession();
+        repository.allInstances(Book.class)
+        .forEach(repository::remove);
         
-        System.out.println("================== DONE ====================");
+        repository.allInstances(Product.class)
+        .forEach(repository::remove);
 
-    }
-    
-    @Test
-    void sampleInventoryShouldBeSetUp() {
-    	
-    	setUp();
+	}
+	
+	void setUp() { 
+		
+		// setup sample Inventory
+		Set<Product> products = new HashSet<>();
 
-    	isisSessionFactory.openSession(new InitialisationSession());
-    	
-    	transactionService.nextTransaction();
-    	
-    	val inventories = Bin.ofCollection(repository.allInstances(Inventory.class)); 
+		products.add(Book.of(
+				"Sample Book", "A sample book for testing.", 99.,
+				"Sample Author", "Sample ISBN", "Sample Publisher"));
+
+		val inventory = Inventory.of("Sample Inventory", products);
+		repository.persist(inventory);
+	}
+
+	@Test
+	void sampleInventoryShouldBeSetUp() {
+
+		// given - expected pre condition: no inventories
+		
+		cleanUp();		
+		assertEquals(0, repository.allInstances(Inventory.class).size());
+		
+		// when
+		
+		transactionService.nextTransaction();
+		setUp();
+
+
+		// then - expected post condition: ONE inventory
+
+		transactionService.nextTransaction();
+		
+		val inventories = Bin.ofCollection(repository.allInstances(Inventory.class)); 
 		assertEquals(1, inventories.size());
 		
 		val inventory = inventories.getSingleton().get();
-        assertNotNull(inventory);
-        assertNotNull(inventory.getProducts());
-        assertEquals(1, inventory.getProducts().size());
-        
-        val product = inventory.getProducts().iterator().next();
-        assertEquals("Sample Book", product.getName());
-        
-        //transactions.endTransaction();
-        
-        isisSessionFactory.closeSession();
-        
-    }
+		assertNotNull(inventory);
+		assertNotNull(inventory.getProducts());
+		assertEquals(1, inventory.getProducts().size());
+
+		val product = inventory.getProducts().iterator().next();
+		assertEquals("Sample Book", product.getName());
+
+	}
+
 
-        
 }
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest_usingFixtures.java
similarity index 75%
copy from example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
copy to example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest_usingFixtures.java
index c313b32..41089c0 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoBootstrappingTest_usingFixtures.java
@@ -32,6 +32,7 @@ import org.apache.isis.runtime.spring.IsisBoot;
 import org.apache.isis.testdomain.jdo.Inventory;
 import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
 import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
+import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -43,7 +44,6 @@ import lombok.val;
 @ExtendWith(SpringExtension.class)
 @SpringBootTest(
         classes = {
-                //HeadlessTransactionSupportDefault.class,
                 IsisBoot.class,
                 FixtureScriptsDefault.class,
                 JdoTestDomainModule.class,
@@ -54,7 +54,7 @@ import lombok.val;
                 //"logging.level.org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract=TRACE"
                 }
         )
-class JdoBootstrappingTest {
+class JdoBootstrappingTest_usingFixtures {
 
     @Inject IsisSessionFactory isisSessionFactory;
     @Inject TransactionService transactionService;
@@ -63,51 +63,29 @@ class JdoBootstrappingTest {
     
     @BeforeEach
     void beforeEach() {
-        System.out.println("================== START ====================");
+    	isisSessionFactory.openSession(new InitialisationSession());
+    	transactionService.nextTransaction();
+    }
+    
+    @AfterEach
+    void afterEach() {
+    	isisSessionFactory.closeSession();
     }
     
     void setUp() {
-    	
-    	System.out.println("================== OPEN SESSION ====================");
-        
-        isisSessionFactory.openSession(new InitialisationSession());
-        
-        System.out.println("================== BEGIN TX ====================");
-        
-        transactionService.nextTransaction();
-        
-        System.out.println("================== RUN FIXTURE 1 ====================");
-        
         // cleanup
         fixtureScripts.runBuilderScript(
                 JdoTestDomainPersona.PurgeAll.builder());
         
-        System.out.println("================== RUN FIXTURE 2 ====================");
-
         // given
         fixtureScripts.runBuilderScript(
                 JdoTestDomainPersona.InventoryWith1Book.builder());
-        
-        System.out.println("================== END TX ====================");
-        
-        transactionService.nextTransaction(); //transactions.endTransaction();
-        
-        System.out.println("================== CLOSE SESSION ====================");
-        
-        isisSessionFactory.closeSession();
-        
-        System.out.println("================== DONE ====================");
-
     }
     
     @Test
     void sampleInventoryShouldBeSetUp() {
     	
     	setUp();
-
-    	isisSessionFactory.openSession(new InitialisationSession());
-    	
-    	transactionService.nextTransaction();
     	
     	val inventories = Bin.ofCollection(repository.allInstances(Inventory.class)); 
 		assertEquals(1, inventories.size());
@@ -120,10 +98,6 @@ class JdoBootstrappingTest {
         val product = inventory.getProducts().iterator().next();
         assertEquals("Sample Book", product.getName());
         
-        //transactions.endTransaction();
-        
-        isisSessionFactory.closeSession();
-        
     }
 
         
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoTransactionTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoTransactionTest.java
deleted file mode 100644
index 22eb7c4..0000000
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/JdoTransactionTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- *  Licensed to the Apache Software Foundation (ASF) under one or more
- *  contributor license agreements.  See the NOTICE file distributed with
- *  this work for additional information regarding copyright ownership.
- *  The ASF licenses this file to You under the Apache License, Version 2.0
- *  (the "License"); you may not use this file except in compliance with
- *  the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- *  Unless required by applicable law or agreed to in writing, software
- *  distributed under the License is distributed on an "AS IS" BASIS,
- *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *  See the License for the specific language governing permissions and
- *  limitations under the License.
- */
-package org.apache.isis.testdomain.tests;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.sql.SQLException;
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.inject.Inject;
-
-import org.apache.isis.applib.fixturescripts.FixtureScripts;
-import org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault;
-import org.apache.isis.applib.services.repository.RepositoryService;
-import org.apache.isis.applib.services.xactn.TransactionService;
-import org.apache.isis.core.commons.collections.Bin;
-import org.apache.isis.core.runtime.system.internal.InitialisationSession;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
-import org.apache.isis.runtime.spring.IsisBoot;
-import org.apache.isis.testdomain.jdo.Book;
-import org.apache.isis.testdomain.jdo.Inventory;
-import org.apache.isis.testdomain.jdo.JdoTestDomainModule;
-import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
-import org.apache.isis.testdomain.jdo.Product;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.test.context.junit.jupiter.SpringExtension;
-
-import lombok.val;
-
-@ExtendWith(SpringExtension.class)
-@SpringBootTest(
-		classes = {
-				IsisBoot.class,
-				FixtureScriptsDefault.class,
-				JdoTestDomainModule.class,
-		},
-		properties = {
-				"logging.config=log4j2-test.xml",
-				//"isis.reflector.introspector.parallelize=false",
-				//"logging.level.org.apache.isis.core.metamodel.specloader.specimpl.ObjectSpecificationAbstract=TRACE"
-		}
-		)
-class JdoTransactionTest {
-
-	@Inject IsisSessionFactory isisSessionFactory;
-	@Inject TransactionService transactionService;
-	@Inject FixtureScripts fixtureScripts;
-
-	@Inject RepositoryService repository;
-
-	@BeforeAll
-	static void launchH2Console() throws SQLException {
-		//H2Console.main(null);
-	}
-	
-	@BeforeEach
-	void setUp() {
-
-		isisSessionFactory.openSession(new InitialisationSession());
-
-		transactionService.nextTransaction();
-
-		// cleanup
-		fixtureScripts.runBuilderScript(
-				JdoTestDomainPersona.PurgeAll.builder());
-
-		isisSessionFactory.closeSession();
-	}
-
-	@Test
-	void sampleInventoryShouldBeSetUp() {
-
-		// expected pre condition: no inventories
-		
-		isisSessionFactory.openSession(new InitialisationSession());
-		
-		transactionService.nextTransaction();
-		
-		assertEquals(0, repository.allInstances(Inventory.class).size());
-		
-
-		{ // setup sample Inventory
-		
-			transactionService.nextTransaction();
-			
-			Set<Product> products = new HashSet<>();
-	
-			products.add(Book.of(
-					"Sample Book", "A sample book for testing.", 99.,
-					"Sample Author", "Sample ISBN", "Sample Publisher"));
-	
-			val inventory = Inventory.of("Sample Inventory", products);
-			repository.persist(inventory);
-	
-
-		}
-
-		// expected post condition: ONE inventory
-
-		transactionService.nextTransaction();
-		
-		val inventories = Bin.ofCollection(repository.allInstances(Inventory.class)); 
-		assertEquals(1, inventories.size());
-		
-		val inventory = inventories.getSingleton().get();
-		assertNotNull(inventory);
-		assertNotNull(inventory.getProducts());
-		assertEquals(1, inventory.getProducts().size());
-
-		val product = inventory.getProducts().iterator().next();
-		assertEquals("Sample Book", product.getName());
-		
-		isisSessionFactory.closeSession();
-
-	}
-
-
-}
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/PublisherServiceTest.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/PublisherServiceTest.java
index 05f5f0f..0fe096c 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/PublisherServiceTest.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/PublisherServiceTest.java
@@ -42,7 +42,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
 import lombok.val;
 
 /**
- * Depends on {@link JdoBootstrappingTest} to succeed.
+ * Depends on {@link JdoBootstrappingTest_usingFixtures} to succeed.
  */
 class PublisherServiceTest  {
     
diff --git a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/H2Console.java b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/Util_H2Console.java
similarity index 85%
rename from example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/H2Console.java
rename to example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/Util_H2Console.java
index 0b66e3f..b90897d 100644
--- a/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/H2Console.java
+++ b/example/misc/smoketest/src/test/java/org/apache/isis/testdomain/tests/Util_H2Console.java
@@ -2,7 +2,7 @@ package org.apache.isis.testdomain.tests;
 
 import java.sql.SQLException;
 
-public class H2Console {
+public class Util_H2Console {
 
 	public static void main(String[] args) throws SQLException {
 		org.h2.tools.Console.main(args);