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