You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2016/05/20 07:04:52 UTC

[31/31] isis git commit: ISIS-1408: removing RuntimeContext, ObjectSpecificationDependencies, ObjectMemberDependencies - now passing the unit tests

ISIS-1408: removing RuntimeContext, ObjectSpecificationDependencies, ObjectMemberDependencies -  now passing the unit tests


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/fc57e47c
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/fc57e47c
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/fc57e47c

Branch: refs/heads/ISIS-1406
Commit: fc57e47c59bed24e6dc89f82035b3d4f7a26c6ca
Parents: 03a1bd1
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Fri May 20 08:03:47 2016 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Fri May 20 08:03:47 2016 +0100

----------------------------------------------------------------------
 .../specimpl/ObjectMemberAbstract.java          |  6 +-
 .../SpecificationLoaderTestAbstract.java        | 63 +++++++-------------
 .../specimpl/ObjectAssociationAbstractTest.java |  5 ++
 ...ectAssociationAbstractTest_alwaysHidden.java |  6 ++
 .../ObjectActionLayoutXmlDefaultTest.java       | 19 ++++--
 .../system/ObjectMemberAbstractTest.java        | 19 ++++--
 .../system/OneToManyAssociationDefaultTest.java | 23 ++++---
 7 files changed, 79 insertions(+), 62 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
index fa3042c..7f31916 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectMemberAbstract.java
@@ -76,7 +76,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
     private final String id;
     private final FacetedMethod facetedMethod;
     private final FeatureType featureType;
-    private final SpecificationLoader specificationLookup;
+    private final SpecificationLoader specificationLoader;
     private final ServicesInjector servicesInjector;
     private final PersistenceSessionServiceInternal persistenceSessionServiceInternal;
     //endregion
@@ -95,7 +95,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
 
         this.servicesInjector = servicesInjector;
 
-        this.specificationLookup = servicesInjector.getSpecificationLoader();
+        this.specificationLoader = servicesInjector.getSpecificationLoader();
         this.persistenceSessionServiceInternal = servicesInjector.getPersistenceSessionServiceInternal();
     }
 
@@ -377,7 +377,7 @@ public abstract class ObjectMemberAbstract implements ObjectMember {
     //region > Dependencies
 
     public SpecificationLoader getSpecificationLoader() {
-        return specificationLookup;
+        return specificationLoader;
     }
 
     public ServicesInjector getServicesInjector() {

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
index b5a2dc0..06b7bd0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/SpecificationLoaderTestAbstract.java
@@ -62,18 +62,12 @@ public abstract class SpecificationLoaderTestAbstract {
     public ExpectedException expectedException = ExpectedException.none();
 
     @Mock
-    private IsisConfigurationDefault mockConfiguration;
-    @Mock
     private DeploymentCategoryProvider mockDeploymentCategoryProvider;
     @Mock
     private AuthenticationSessionProvider mockAuthenticationSessionProvider;
     @Mock
-    private ServicesInjector mockServicesInjector;
-    @Mock
     private GridService mockGridService;
     @Mock
-    private SpecificationLoader mockSpecificationLoader;
-    @Mock
     private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
     @Mock
     private TransactionStateProviderInternal mockTransactionStateProviderInternal;
@@ -82,42 +76,23 @@ public abstract class SpecificationLoaderTestAbstract {
     @Mock
     private LocalizationProviderInternal mockLocalizationProviderInternal;
 
+    ServicesInjector stubServicesInjector;
+    IsisConfigurationDefault stubConfiguration;
+
     // is loaded by subclasses
     protected ObjectSpecification specification;
 
-    
+
     @Before
     public void setUp() throws Exception {
 
         context.checking(new Expectations() {{
-            ignoring(mockConfiguration);
-
-            allowing(mockServicesInjector).getConfigurationServiceInternal();
-            will(returnValue(new IsisConfigurationDefault(null)));
-
-            allowing(mockServicesInjector).lookupService(DeploymentCategoryProvider.class);
-            will(returnValue(mockDeploymentCategoryProvider));
 
             allowing(mockDeploymentCategoryProvider).getDeploymentCategory();
             will(returnValue(DeploymentCategory.PRODUCTION));
 
-            allowing(mockServicesInjector).lookupService(AuthenticationSessionProvider.class);
-            will(returnValue(mockAuthenticationSessionProvider));
-
-            allowing(mockServicesInjector).getSpecificationLoader();
-            will(returnValue(mockSpecificationLoader));
-
-            allowing(mockServicesInjector).lookupService(GridService.class);
-            will(returnValue(mockGridService));
-
             ignoring(mockGridService).existsFor(with(any(Class.class)));
 
-            ignoring(mockServicesInjector).getRegisteredServices();
-
-            ignoring(mockServicesInjector).isRegisteredService(with(any(Class.class)));
-
-            ignoring(mockSpecificationLoader).allServiceClasses();
-
             ignoring(mockPersistenceSessionServiceInternal);
             ignoring(mockTransactionStateProviderInternal);
             ignoring(mockMessageBrokerServiceInternal);
@@ -125,27 +100,33 @@ public abstract class SpecificationLoaderTestAbstract {
 
         }});
 
-        final ServicesInjector servicesInjector =
+        stubConfiguration = new IsisConfigurationDefault(null);
+
+        stubServicesInjector =
                 new ServicesInjector(Lists.newArrayList(
+                        mockAuthenticationSessionProvider,
+                        stubConfiguration,
+                        mockDeploymentCategoryProvider,
                         mockPersistenceSessionServiceInternal,
                         mockLocalizationProviderInternal,
                         mockMessageBrokerServiceInternal,
                         mockTransactionStateProviderInternal,
                         mockGridService,
-                        mockConfiguration,
-                        mockSpecificationLoader,
                         mockDeploymentCategoryProvider));
 
-        final SpecificationLoader reflector =
+        final SpecificationLoader specificationLoader =
                 new SpecificationLoader(DeploymentCategory.PRODUCTION,
-                        mockConfiguration,
+                        stubConfiguration,
                         new ProgrammingModelFacetsJava5(),
                         new MetaModelValidatorDefault(),
                         Lists.<LayoutMetadataReader>newArrayList(
-                                new LayoutMetadataReaderFromJson()), servicesInjector);
-        reflector.init();
+                                new LayoutMetadataReaderFromJson()), stubServicesInjector);
+
+        stubServicesInjector.addFallbackIfRequired(SpecificationLoader.class, specificationLoader);
+
+        specificationLoader.init();
         
-        specification = loadSpecification(reflector);
+        specification = loadSpecification(specificationLoader);
     }
 
     protected abstract ObjectSpecification loadSpecification(SpecificationLoader reflector);
@@ -156,11 +137,11 @@ public abstract class SpecificationLoaderTestAbstract {
         expectedException.expectMessage("illegal argument, expected: is not an empty collection");
 
         new SpecificationLoader(DeploymentCategory.PRODUCTION ,
-                mockConfiguration,
+                stubConfiguration,
                 new ProgrammingModelFacetsJava5(),
                 new MetaModelValidatorDefault(),
                 Lists.<LayoutMetadataReader>newArrayList(),
-                mockServicesInjector);
+                stubServicesInjector);
     }
 
     @Test
@@ -169,11 +150,11 @@ public abstract class SpecificationLoaderTestAbstract {
         expectedException.expectMessage("illegal argument, expected: is not null");
 
         new SpecificationLoader(DeploymentCategory.PRODUCTION,
-                mockConfiguration,
+                stubConfiguration,
                 new ProgrammingModelFacetsJava5(),
                 new MetaModelValidatorDefault(),
                 null,
-                mockServicesInjector);
+                stubServicesInjector);
     }
 
     @Test

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
index aeb7377..da69535 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest.java
@@ -37,6 +37,7 @@ import org.apache.isis.core.metamodel.facets.properties.choices.PropertyChoicesF
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -61,6 +62,8 @@ public class ObjectAssociationAbstractTest {
     private ServicesInjector mockServicesInjector;
     @Mock
     private SpecificationLoader mockSpecificationLoader;
+    @Mock
+    private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
 
 
     public static class Customer {
@@ -78,6 +81,8 @@ public class ObjectAssociationAbstractTest {
         context.checking(new Expectations() {{
             allowing(mockServicesInjector).getSpecificationLoader();
             will(returnValue(mockSpecificationLoader));
+            allowing(mockServicesInjector).getPersistenceSessionServiceInternal();
+            will(returnValue(mockPersistenceSessionServiceInternal));
         }});
 
         objectAssociation = new ObjectAssociationAbstract(facetedMethod, FeatureType.PROPERTY, objectSpecification, mockServicesInjector) {

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
index 999ec2a..9eb6dd3 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectAssociationAbstractTest_alwaysHidden.java
@@ -38,6 +38,7 @@ import org.apache.isis.core.metamodel.facets.members.hidden.HiddenFacetAbstract;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+import org.apache.isis.core.metamodel.services.persistsession.PersistenceSessionServiceInternal;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
@@ -61,6 +62,8 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
     private ServicesInjector mockServicesInjector;
     @Mock
     private SpecificationLoader mockSpecificationLoader;
+    @Mock
+    private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
 
     public static class Customer {
         public String getFirstName() {
@@ -75,6 +78,9 @@ public class ObjectAssociationAbstractTest_alwaysHidden {
         context.checking(new Expectations() {{
             allowing(mockServicesInjector).getSpecificationLoader();
             will(returnValue(mockSpecificationLoader));
+
+            allowing(mockServicesInjector).getPersistenceSessionServiceInternal();
+            will(returnValue(mockPersistenceSessionServiceInternal));
         }});
 
         objectAssociation = new ObjectAssociationAbstract(

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
index 426c070..c3bfe80 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectActionLayoutXmlDefaultTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.core.runtime.system;
 
+import com.google.common.collect.Lists;
+
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -58,27 +60,34 @@ public class ObjectActionLayoutXmlDefaultTest {
     @Mock
     private AuthenticationSessionProvider mockAuthenticationSessionProvider;
     @Mock
-    private SpecificationLoader mockSpecificationLookup;
+    private SpecificationLoader mockSpecificationLoader;
     @Mock
     private AdapterManager mockAdapterManager;
     @Mock
-    private ServicesInjector mockServicesInjector;
-    @Mock
     private MessageBrokerServiceInternal mockMessageBrokerServiceInternal;
     @Mock
     private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
 
+    private ServicesInjector stubServicesInjector;
+
     @Before
     public void setUp() throws Exception {
 
+        stubServicesInjector =
+                new ServicesInjector(Lists.newArrayList(
+                        mockAuthenticationSessionProvider,
+                        mockSpecificationLoader,
+                        mockPersistenceSessionServiceInternal,
+                        mockMessageBrokerServiceInternal));
+
         context.checking(new Expectations() {
             {
-                one(mockFacetedMethod).getIdentifier();
+                oneOf(mockFacetedMethod).getIdentifier();
                 will(returnValue(Identifier.actionIdentifier("Customer", "reduceheadcount")));
             }
         });
 
-        action = new ObjectActionDefault(mockFacetedMethod, mockServicesInjector);
+        action = new ObjectActionDefault(mockFacetedMethod, stubServicesInjector);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
index ff616aa..ab56da7 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/ObjectMemberAbstractTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.core.runtime.system;
 
+import com.google.common.collect.Lists;
+
 import org.datanucleus.enhancement.Persistable;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
@@ -82,8 +84,11 @@ public class ObjectMemberAbstractTest {
     private AuthenticationSession mockAuthenticationSession;
     @Mock
     private SpecificationLoader mockSpecificationLoader;
-    @Mock
-    ServicesInjector mockServicesInjector;
+
+    //    @Mock
+//    ServicesInjector mockServicesInjector;
+    ServicesInjector stubServicesInjector;
+
     @Mock
     private ObjectSpecification mockSpecForCustomer;
 
@@ -94,6 +99,10 @@ public class ObjectMemberAbstractTest {
     public void setUp() throws Exception {
         org.apache.log4j.Logger.getRootLogger().setLevel(org.apache.log4j.Level.OFF);
 
+        stubServicesInjector = new ServicesInjector(Lists.<Object>newArrayList(
+                mockSpecificationLoader, mockSpecificationLoader
+        ));
+
         context.checking(new Expectations() {{
             allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
             will(returnValue(mockAuthenticationSession));
@@ -109,7 +118,7 @@ public class ObjectMemberAbstractTest {
                                 .withPojo(mockPersistable)
                                 .build();
 
-        testMember = new ObjectMemberAbstractImpl("id");
+        testMember = new ObjectMemberAbstractImpl("id", stubServicesInjector);
 
         context.checking(new Expectations() {{
             allowing(mockSpecificationLoader).lookupBySpecId(ObjectSpecId.of("CUS"));
@@ -271,8 +280,8 @@ class ObjectMemberAbstractImpl extends ObjectMemberAbstract {
         }
     }
 
-    protected ObjectMemberAbstractImpl(final String id) {
-        super(FacetedMethod.createForProperty(Customer.class, "firstName"), FeatureType.PROPERTY, null);
+    protected ObjectMemberAbstractImpl(final String id, final ServicesInjector servicesInjector) {
+        super(FacetedMethod.createForProperty(Customer.class, "firstName"), FeatureType.PROPERTY, servicesInjector);
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/isis/blob/fc57e47c/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
index 25076ce..cb51e3f 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/OneToManyAssociationDefaultTest.java
@@ -19,6 +19,8 @@
 
 package org.apache.isis.core.runtime.system;
 
+import com.google.common.collect.Lists;
+
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
@@ -28,7 +30,6 @@ import org.junit.Test;
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
-import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
 import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
 import org.apache.isis.core.metamodel.facets.FacetedMethod;
 import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
@@ -70,9 +71,7 @@ public class OneToManyAssociationDefaultTest {
     @Mock
     private AuthenticationSessionProvider mockAuthenticationSessionProvider;
     @Mock
-    private SpecificationLoader mockSpecificationLookup;
-    @Mock
-    private AdapterManager mockAdapterManager;
+    private SpecificationLoader mockSpecificationLoader;
     @Mock
     private MessageBrokerServiceInternal mockMessageBrokerServiceInternal;
     @Mock
@@ -81,25 +80,33 @@ public class OneToManyAssociationDefaultTest {
     private FacetedMethod mockPeer;
     @Mock
     private NamedFacet mockNamedFacet;
-    @Mock
-    private ServicesInjector mockServicesInjector;
+
     @Mock
     private CollectionAddToFacet mockCollectionAddToFacet;
 
+    private ServicesInjector stubServicesInjector;
+
     private OneToManyAssociation association;
 
     @Before
     public void setUp() {
+        stubServicesInjector = new ServicesInjector(Lists.newArrayList(
+                mockAuthenticationSessionProvider,
+                mockSpecificationLoader,
+                mockMessageBrokerServiceInternal,
+                mockPersistenceSessionServiceInternal
+        ));
+
         allowingPeerToReturnCollectionType();
         allowingPeerToReturnIdentifier();
         allowingSpecLoaderToReturnSpecs();
-        association = new OneToManyAssociationDefault(mockPeer, mockServicesInjector);
+        association = new OneToManyAssociationDefault(mockPeer, stubServicesInjector);
     }
 
     private void allowingSpecLoaderToReturnSpecs() {
         context.checking(new Expectations() {
             {
-                allowing(mockSpecificationLookup).loadSpecification(Order.class);
+                allowing(mockSpecificationLoader).loadSpecification(Order.class);
             }
         });
     }