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);