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/05/07 07:44:09 UTC
[isis] 03/03: ISIS-2112: smoke test: ensure all singleton-scoped
beans are provisioned
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit bb21f3ec674bfe25ff2343649180bbea2a5aa4a6
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue May 7 09:43:56 2019 +0200
ISIS-2112: smoke test: ensure all singleton-scoped beans are provisioned
Task-Url: https://issues.apache.org/jira/browse/ISIS-2112
---
.../isis/testdomain/tests/BootstrappingTest.java | 33 +++++++++-
.../testdomain/tests/builtin-requestscoped.json | 10 +++
.../isis/testdomain/tests/builtin-singleton.json | 75 ++++++++++++++++++++++
3 files changed, 116 insertions(+), 2 deletions(-)
diff --git a/core/detached-tests/src/test/java/org/apache/isis/testdomain/tests/BootstrappingTest.java b/core/detached-tests/src/test/java/org/apache/isis/testdomain/tests/BootstrappingTest.java
index 5a537fd..54aa647 100644
--- a/core/detached-tests/src/test/java/org/apache/isis/testdomain/tests/BootstrappingTest.java
+++ b/core/detached-tests/src/test/java/org/apache/isis/testdomain/tests/BootstrappingTest.java
@@ -16,16 +16,27 @@
*/
package org.apache.isis.testdomain.tests;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.TreeSet;
+import java.util.stream.Collectors;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
+import org.apache.isis.commons.internal.collections._Sets;
+import org.apache.isis.commons.internal.resources._Json;
+import org.apache.isis.commons.internal.resources._Resources;
+import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.testdomain.jdo.Inventory;
import org.apache.isis.testdomain.jdo.JdoTestDomainIntegTest;
import org.apache.isis.testdomain.jdo.JdoTestDomainPersona;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import lombok.val;
+
class BootstrappingTest extends JdoTestDomainIntegTest {
private Inventory inventory;
@@ -48,5 +59,23 @@ class BootstrappingTest extends JdoTestDomainIntegTest {
assertNotNull(inventory.getProducts());
assertEquals(1, inventory.getProducts().size());
}
+
+ @Test
+ void builtInServicesShouldBeSetUp() throws IOException {
+
+ val serviceRegistry = IsisContext.getServicesInjector();
+ val managedServices = serviceRegistry.streamServiceTypes()
+ .map(Class::getName)
+ .collect(Collectors.toCollection(TreeSet::new));
+
+ val singletonJson = _Resources.loadAsString(this.getClass(), "builtin-singleton.json", StandardCharsets.UTF_8);
+ val singletonSet = new TreeSet<>(_Json.readJsonList(String.class, singletonJson));
+
+ // same as managedServices.containsAll(singletonSet) but more verbose in case of failure
+ assertEquals(singletonSet.toString(), _Sets.intersectSorted(managedServices, singletonSet).toString());
+
+ //TODO also test for request-scoped service (requires a means to mock a request-context)
+
+ }
}
diff --git a/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-requestscoped.json b/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-requestscoped.json
new file mode 100644
index 0000000..a4f90ff
--- /dev/null
+++ b/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-requestscoped.json
@@ -0,0 +1,10 @@
+[
+ "org.apache.isis.applib.services.command.CommandContext",
+ "org.apache.isis.applib.services.iactn.InteractionContext",
+ "org.apache.isis.applib.services.queryresultscache.QueryResultsCacheInternal",
+ "org.apache.isis.applib.services.scratchpad.Scratchpad",
+ "org.apache.isis.core.runtime.services.changes.ChangedObjectsServiceInternal",
+ "org.apache.isis.core.runtime.services.metrics.MetricsServiceDefault",
+ "org.apache.isis.core.runtime.services.publish.PublishingServiceInternalDefault",
+ "org.apache.isis.objectstore.jdo.datanucleus.service.support.TimestampService"
+]
diff --git a/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-singleton.json b/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-singleton.json
new file mode 100644
index 0000000..5908c85
--- /dev/null
+++ b/core/detached-tests/src/test/resources/org/apache/isis/testdomain/tests/builtin-singleton.json
@@ -0,0 +1,75 @@
+[
+ "org.apache.isis.applib.conmap.ContentMappingServiceForCommandDto",
+ "org.apache.isis.applib.conmap.ContentMappingServiceForCommandDto$CopyOverFromCommand",
+ "org.apache.isis.applib.conmap.ContentMappingServiceForCommandsDto",
+ "org.apache.isis.applib.fixturescripts.ExecutionParametersService",
+ "org.apache.isis.applib.mixins.dto.DtoMappingHelper",
+ "org.apache.isis.applib.services.audit.AuditerServiceLogging",
+ "org.apache.isis.applib.services.classdiscovery.ClassDiscoveryServiceDefault",
+ "org.apache.isis.applib.services.clock.ClockService",
+ "org.apache.isis.applib.services.confview.ConfigurationMenu",
+ "org.apache.isis.applib.services.exceprecog.jdo.ExceptionRecognizerCompositeForJdoObjectStore",
+ "org.apache.isis.applib.services.fixturespec.FixtureScriptsDefault",
+ "org.apache.isis.applib.services.h2.H2ManagerMenu",
+ "org.apache.isis.applib.services.hsqldb.HsqlDbManagerMenu",
+ "org.apache.isis.applib.services.jaxb.JaxbServiceDefault",
+ "org.apache.isis.applib.services.jdosupport.IsisJdoSupportDN5",
+ "org.apache.isis.applib.services.layout.LayoutServiceMenu",
+ "org.apache.isis.applib.services.metamodel.MetaModelServicesMenu",
+ "org.apache.isis.applib.services.publish.PublisherServiceLogging",
+ "org.apache.isis.applib.services.queryresultscache.QueryResultsCacheControlInternal",
+ "org.apache.isis.applib.services.routing.RoutingServiceDefault",
+ "org.apache.isis.applib.services.swagger.SwaggerServiceMenu",
+ "org.apache.isis.applib.services.tablecol.TableColumnOrderService$Default",
+ "org.apache.isis.applib.services.urlencoding.UrlEncodingServiceWithCompression",
+ "org.apache.isis.config.builder.IsisConfigurationDefault",
+ "org.apache.isis.config.services.view.ConfigurationViewServiceDefault",
+ "org.apache.isis.core.integtestsupport.components.HeadlessTransactionSupportDefault",
+ "org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureFactory",
+ "org.apache.isis.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault",
+ "org.apache.isis.core.metamodel.services.bookmarks.BookmarkServiceInternalDefault",
+ "org.apache.isis.core.metamodel.services.exceprecog.ExceptionRecognizerDocDefault",
+ "org.apache.isis.core.metamodel.services.factory.FactoryServiceInternalDefault",
+ "org.apache.isis.core.metamodel.services.grid.GridLoaderServiceDefault",
+ "org.apache.isis.core.metamodel.services.grid.GridServiceDefault",
+ "org.apache.isis.core.metamodel.services.grid.bootstrap3.GridSystemServiceBS3",
+ "org.apache.isis.core.metamodel.services.layout.LayoutServiceDefault",
+ "org.apache.isis.core.metamodel.services.message.MessageServiceNoop",
+ "org.apache.isis.core.metamodel.services.metamodel.MetaModelServiceDefault",
+ "org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternalNoop",
+ "org.apache.isis.core.metamodel.services.registry.ServiceRegistryDefault",
+ "org.apache.isis.core.metamodel.services.repository.RepositoryServiceInternalDefault",
+ "org.apache.isis.core.metamodel.services.swagger.SwaggerServiceDefault",
+ "org.apache.isis.core.metamodel.services.title.TitleServiceDefault",
+ "org.apache.isis.core.metamodel.services.user.UserServiceDefault",
+ "org.apache.isis.core.metamodel.services.user.UserServiceDefault$SudoServiceSpi",
+ "org.apache.isis.core.metamodel.specloader.SpecificationLoader",
+ "org.apache.isis.core.runtime.authorization.standard.AuthorizationManagerStandard",
+ "org.apache.isis.core.runtime.services.auditing.AuditingServiceInternal",
+ "org.apache.isis.core.runtime.services.authsess.AuthenticationSessionProviderDefault",
+ "org.apache.isis.core.runtime.services.background.BackgroundServiceDefault",
+ "org.apache.isis.core.runtime.services.background.CommandExecutorServiceDefault",
+ "org.apache.isis.core.runtime.services.command.CommandDtoServiceInternalDefault",
+ "org.apache.isis.core.runtime.services.command.CommandServiceDefault",
+ "org.apache.isis.core.runtime.services.email.EmailServiceDefault",
+ "org.apache.isis.core.runtime.services.homepage.HomePageProviderServiceDefault",
+ "org.apache.isis.core.runtime.services.i18n.po.TranslationServicePo",
+ "org.apache.isis.core.runtime.services.i18n.po.TranslationServicePoMenu",
+ "org.apache.isis.core.runtime.services.ixn.InteractionDtoServiceInternalDefault",
+ "org.apache.isis.core.runtime.services.menubars.MenuBarsLoaderServiceDefault",
+ "org.apache.isis.core.runtime.services.menubars.bootstrap3.MenuBarsServiceBS3",
+ "org.apache.isis.core.runtime.services.message.MessageServiceDefault",
+ "org.apache.isis.core.runtime.services.persistsession.PersistenceSessionServiceInternalDefault",
+ "org.apache.isis.core.runtime.services.sessmgmt.SessionManagementServiceDefault",
+ "org.apache.isis.core.runtime.services.sse.EventStreamServiceDefault",
+ "org.apache.isis.core.runtime.services.sudo.SudoServiceDefault",
+ "org.apache.isis.core.runtime.services.userprof.UserProfileServiceDefault",
+ "org.apache.isis.core.runtime.services.userreg.EmailNotificationServiceDefault",
+ "org.apache.isis.core.runtime.services.xactn.TransactionServiceDefault",
+ "org.apache.isis.core.runtime.services.xmlsnapshot.XmlSnapshotServiceDefault",
+ "org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory5",
+ "org.apache.isis.core.runtime.system.session.IsisSessionFactory",
+ "org.apache.isis.core.security.authentication.standard.AuthenticationManagerStandard",
+ "org.apache.isis.core.wrapper.WrapperFactoryDefault",
+ "org.apache.isis.objectstore.jdo.datanucleus.service.eventbus.EventBusServiceJdo"
+]