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 2015/09/10 14:07:49 UTC

[50/50] [abbrv] isis git commit: ISIS-1194: fixing up unit tests; also changing isis-core-runtime's pom.xml, skipTests = false

ISIS-1194: fixing up unit tests; also changing isis-core-runtime's pom.xml, skipTests = false


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

Branch: refs/heads/ISIS-1194
Commit: 550b88d6ede5de6e9ff7b802dfb58c60d3a7e301
Parents: dbd6b49
Author: Dan Haywood <da...@haywood-associates.co.uk>
Authored: Thu Sep 10 12:45:49 2015 +0100
Committer: Dan Haywood <da...@haywood-associates.co.uk>
Committed: Thu Sep 10 12:45:49 2015 +0100

----------------------------------------------------------------------
 .../oid/OidMarshallerTest_unmarshal.java        | 16 ----
 .../AbstractFacetFactoryJUnit4TestCase.java     | 11 +++
 .../facets/AbstractFacetFactoryTest.java        | 36 +++++++-
 .../ActionAnnotationFacetFactoryTest.java       |  5 ++
 ...tationFacetFactoryTest_actionInvocation.java |  6 ++
 .../DomainObjectAnnotationFacetFactoryTest.java |  3 +
 .../ParameterAnnotationFacetFactoryTest.java    |  3 +
 .../PropertyAnnotationFacetFactoryTest.java     |  2 +
 ...cesInjectorDefaultTest_validateServices.java | 80 +++++++++++++++++
 core/runtime/pom.xml                            |  2 +-
 .../persistence/adapter/PojoAdapter.java        |  6 +-
 .../core/runtime/services/i18n/po/PoReader.java |  2 +-
 .../persistence/PersistenceSessionFactory.java  |  6 --
 .../core/runtime/context/IsisContextTest.java   | 48 ++++-------
 ...reTransactionManager_EndTransactionTest.java | 45 +---------
 ...TransactionManager_StartTransactionTest.java | 10 ---
 .../transaction/PojoAdapterBuilder.java         |  5 --
 .../runtime/services/i18n/po/PoReaderTest.java  |  7 +-
 .../system/ObjectMemberAbstractTest.java        | 75 ++++++++++++++--
 ...onFactoryAbstractTest_init_and_shutdown.java | 90 --------------------
 20 files changed, 245 insertions(+), 213 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
index edabb1e..50d1a9b 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/adapter/oid/OidMarshallerTest_unmarshal.java
@@ -182,27 +182,11 @@ public class OidMarshallerTest_unmarshal {
 
 
     @Test(expected=IllegalArgumentException.class)
-    public void root_forCollection_oidStr() {
-        oidMarshaller.unmarshal("CUS:123~NME:123$items", RootOid.class);
-    }
-
-    @Test(expected=IllegalArgumentException.class)
-    public void root_forAggregated_oidStr() {
-        oidMarshaller.unmarshal("CUS:123~NME:123", RootOid.class);
-    }
-
-    @Test(expected=IllegalArgumentException.class)
     public void collection_forRoot_oidStr() {
         oidMarshaller.unmarshal("CUS:123", ParentedCollectionOid.class);
     }
 
     @Test(expected=IllegalArgumentException.class)
-    public void collection_forAggregated_oidStr() {
-        oidMarshaller.unmarshal("CUS:123~NME:123", ParentedCollectionOid.class);
-    }
-
-    
-    @Test(expected=IllegalArgumentException.class)
     public void badPattern() {
         oidMarshaller.unmarshal("xxx", RootOid.class);
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
index 2727ce4..4c5d723 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryJUnit4TestCase.java
@@ -28,6 +28,7 @@ import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.i18n.TranslationService;
 import org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.commons.config.IsisConfiguration;
 import org.apache.isis.core.metamodel.adapter.mgr.AdapterManager;
@@ -38,6 +39,7 @@ import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
 import org.apache.isis.core.metamodel.facetapi.MethodRemover;
 import org.apache.isis.core.metamodel.facets.object.domainobject.autocomplete.AutoCompleteFacetForDomainObjectAnnotation;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
 import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
@@ -59,6 +61,10 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
     protected MethodRemover mockMethodRemover;
     @Mock
     protected FacetHolder mockFacetHolder;
+    @Mock
+    protected ServicesInjector mockServicesInjector;
+    @Mock
+    protected TranslationService mockTranslationService;
 
     @Mock
     protected IsisConfiguration mockConfiguration;
@@ -102,6 +108,11 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
             will(returnValue(DeploymentCategory.PRODUCTION));
         }});
 
+        context.checking(new Expectations() {{
+            allowing(mockServicesInjector).lookupService(TranslationService.class);
+            will(returnValue(mockTranslationService));
+        }});
+
         facetHolder = new AbstractFacetFactoryTest.IdentifiedHolderImpl(Identifier.propertyOrCollectionIdentifier(Customer.class, "firstName"));
         facetedMethod = FacetedMethod.createForProperty(AbstractFacetFactoryTest.Customer.class, "firstName");
         facetedMethodParameter = new FacetedMethodParameter(facetedMethod.getOwningType(), facetedMethod.getMethod(), String.class);

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
index 06ab3a6..d8ce122 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/AbstractFacetFactoryTest.java
@@ -19,18 +19,30 @@
 
 package org.apache.isis.core.metamodel.facets;
 
-import junit.framework.TestCase;
-
 import java.lang.reflect.Method;
 import java.util.List;
+
+import org.jmock.Expectations;
+import org.junit.Rule;
+
 import org.apache.isis.applib.Identifier;
+import org.apache.isis.applib.services.i18n.TranslationService;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategory;
+import org.apache.isis.core.metamodel.deployment.DeploymentCategoryProvider;
 import org.apache.isis.core.metamodel.facetapi.FacetHolder;
 import org.apache.isis.core.metamodel.facetapi.FacetHolderImpl;
 import org.apache.isis.core.metamodel.facetapi.FeatureType;
 import org.apache.isis.core.metamodel.facetapi.IdentifiedHolder;
+import org.apache.isis.core.metamodel.runtimecontext.ServicesInjector;
+import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
+
+import junit.framework.TestCase;
 
 public abstract class AbstractFacetFactoryTest extends TestCase {
 
+    @Rule
+    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(JUnitRuleMockery2.Mode.INTERFACES_AND_CLASSES);
+
     public static class Customer {
 
         private String firstName;
@@ -44,6 +56,10 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
         }
     }
 
+    protected ServicesInjector mockServicesInjector;
+    protected TranslationService mockTranslationService;
+    protected DeploymentCategoryProvider mockDeploymentCategoryProvider;
+
     protected ProgrammableReflector programmableReflector;
     protected ProgrammableMethodRemover methodRemover;
 
@@ -73,6 +89,22 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
         facetedMethod = FacetedMethod.createForProperty(Customer.class, "firstName");
         facetedMethodParameter = new FacetedMethodParameter(facetedMethod.getOwningType(), facetedMethod.getMethod(), String.class);
         methodRemover = new ProgrammableMethodRemover();
+
+        mockDeploymentCategoryProvider = context.mock(DeploymentCategoryProvider.class);
+        mockServicesInjector = context.mock(ServicesInjector.class);
+        mockTranslationService = context.mock(TranslationService.class);
+
+        context.checking(new Expectations() {{
+            allowing(mockDeploymentCategoryProvider).getDeploymentCategory();
+            will(returnValue(DeploymentCategory.PRODUCTION));
+        }});
+
+        context.checking(new Expectations() {{
+            allowing(mockServicesInjector).lookupService(TranslationService.class);
+            will(returnValue(mockTranslationService));
+        }});
+
+
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
index 78efd3b..86b11ca 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest.java
@@ -23,12 +23,14 @@ import java.lang.reflect.Method;
 import java.util.Collection;
 import java.util.List;
 import java.util.UUID;
+
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
+
 import org.apache.isis.applib.Identifier;
 import org.apache.isis.applib.annotation.Action;
 import org.apache.isis.applib.annotation.ActionInteraction;
@@ -125,6 +127,9 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
         facetFactory = new ActionAnnotationFacetFactory();
         facetFactory.setConfiguration(mockConfiguration);
         facetFactory.setSpecificationLoader(mockSpecificationLoaderSpi);
+        facetFactory.setServicesInjector(mockServicesInjector);
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+
 
         actionMethod = findMethod(Customer.class, "someAction");
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
index b8f803d..6526cda 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
@@ -46,6 +46,9 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
         super.setUp();
         facetFactory = new ActionAnnotationFacetFactory();
         facetFactory.setSpecificationLoader(programmableReflector);
+        facetFactory.setServicesInjector(mockServicesInjector);
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+
     }
 
     public void testActionInvocationFacetIsInstalledAndMethodRemoved() {
@@ -150,10 +153,13 @@ public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractF
         final ActionParameterChoicesFacetViaMethodFactory facetFactoryForChoices = new ActionParameterChoicesFacetViaMethodFactory();
         facetFactoryForChoices.setSpecificationLoader(programmableReflector);
         programmableReflector.setLoadSpecificationStringReturn(voidSpec);
+        facetFactoryForChoices.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
 
         final DisableForContextFacetViaMethodFactory facetFactoryForDisable = new DisableForContextFacetViaMethodFactory();
         facetFactoryForDisable.setSpecificationLoader(programmableReflector);
         programmableReflector.setLoadSpecificationStringReturn(voidSpec);
+        facetFactoryForDisable.setServicesInjector(mockServicesInjector);
+        facetFactoryForDisable.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
 
         class Customer {
             @SuppressWarnings("unused")

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
index eb77681..532666e 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
@@ -74,6 +74,9 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
     public void setUp() throws Exception {
         facetFactory = new DomainObjectAnnotationFacetFactory();
         facetFactory.setConfiguration(mockConfiguration);
+        facetFactory.setServicesInjector(mockServicesInjector);
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
index 933cdf2..4ebd7b1 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterAnnotationFacetFactoryTest.java
@@ -76,6 +76,9 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
     public void setUp() throws Exception {
         facetFactory = new ParameterAnnotationFacetFactory();
         facetFactory.setSpecificationLoader(mockSpecificationLoaderSpi);
+        facetFactory.setServicesInjector(mockServicesInjector);
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
+
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
index 72fd122..56a1a03 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyAnnotationFacetFactoryTest.java
@@ -113,6 +113,8 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
     public void setUp() throws Exception {
         facetFactory = new PropertyAnnotationFacetFactory();
         facetFactory.setSpecificationLoader(mockSpecificationLoaderSpi);
+        facetFactory.setServicesInjector(mockServicesInjector);
+        facetFactory.setDeploymentCategoryProvider(mockDeploymentCategoryProvider);
     }
 
     @After

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefaultTest_validateServices.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefaultTest_validateServices.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefaultTest_validateServices.java
new file mode 100644
index 0000000..f2611d9
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServicesInjectorDefaultTest_validateServices.java
@@ -0,0 +1,80 @@
+/*
+ *  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.core.metamodel.services;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import org.junit.Before;
+import org.junit.Test;
+
+public class ServicesInjectorDefaultTest_validateServices {
+
+    ServicesInjectorDefault servicesInjector;
+
+    public static class DomainServiceWithSomeId {
+        public String getId() { return "someId"; }
+    }
+
+    public static class DomainServiceWithDuplicateId {
+        public String getId() { return "someId"; }
+    }
+
+    public static class DomainServiceWithDifferentId {
+        public String getId() { return "otherId"; }
+    }
+
+    public static class ValidateServicesTestValidateServices extends ServicesInjectorDefaultTest_validateServices {
+
+        List<Object> serviceList;
+
+        @Before
+        public void setUp() throws Exception {
+            serviceList = Lists.newArrayList();
+        }
+
+        @Test(expected=IllegalStateException.class)
+        public void validate_DomainServicesWithDuplicateIds() {
+
+            // given
+            serviceList.add(new DomainServiceWithSomeId());
+            serviceList.add(new DomainServiceWithDuplicateId());
+
+            servicesInjector = new ServicesInjectorDefault(serviceList, null);
+
+            // when
+            servicesInjector.validateServices();
+        }
+
+        public void validate_DomainServicesWithDifferentIds() {
+
+            // given
+            serviceList.add(new DomainServiceWithSomeId());
+            serviceList.add(new DomainServiceWithDifferentId());
+
+            servicesInjector = new ServicesInjectorDefault(serviceList, null);
+
+            // when
+            servicesInjector.validateServices();
+        }
+
+    }
+}

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/pom.xml
----------------------------------------------------------------------
diff --git a/core/runtime/pom.xml b/core/runtime/pom.xml
index debeb8b..062bef4 100644
--- a/core/runtime/pom.xml
+++ b/core/runtime/pom.xml
@@ -68,7 +68,7 @@
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-surefire-plugin</artifactId>
                 <configuration>
-                    <skipTests>true</skipTests>
+                    <skipTests>false</skipTests>
                 </configuration>
             </plugin>
         </plugins>

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
index 59a24d6..dc44b22 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adapter/PojoAdapter.java
@@ -78,6 +78,9 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
             final Localization localization,
             final SpecificationLoader specificationLoader,
             final AdapterManager adapterManager) {
+
+        Ensure.ensureThatArg(specificationLoader, is(notNullValue()));
+
         this.specificationLoader = specificationLoader;
         this.adapterManager = adapterManager;
         this.localization = localization;
@@ -97,7 +100,8 @@ public class PojoAdapter extends InstanceAbstract implements ObjectAdapter {
 
     @Override
     protected ObjectSpecification loadSpecification() {
-        final ObjectSpecification specification = specificationLoader.loadSpecification(getObject().getClass());
+        final Class<?> aClass = getObject().getClass();
+        final ObjectSpecification specification = specificationLoader.loadSpecification(aClass);
         //String defaultTitle = "A" + (" " + specification.getSingularName()).toLowerCase();
         return specification;
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
index cc91ac4..97f3789 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/i18n/po/PoReader.java
@@ -156,7 +156,7 @@ class PoReader extends PoAbstract {
         // 3. fallback
         // so this message is only ever displayed if the locale isn't using fallback (ie a translation is genuinely missing)
         final Boolean usesFallback = usesFallbackByLocale.get(targetLocale);
-        if(!usesFallback) {
+        if(usesFallback == null || !usesFallback) {
             LOG.warn("No translation found for: " + key);
         }
 

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index d18bb7a..bfe8c19 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -84,12 +84,6 @@ public class PersistenceSessionFactory implements MetaModelRefiner,
             final ServicesInjectorSpi servicesInjector,
             final IsisConfiguration isisConfiguration,
             final RuntimeContextFromSession runtimeContext) {
-
-        ensureThatState(deploymentType, is(notNullValue()));
-        ensureThatState(servicesInjector, is(notNullValue()));
-        ensureThatState(isisConfiguration, is(not(nullValue())));
-        ensureThatState(runtimeContext, is(not(nullValue())));
-
         this.deploymentType = deploymentType;
         this.configuration = isisConfiguration;
         this.servicesInjector = servicesInjector;

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/context/IsisContextTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/context/IsisContextTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/context/IsisContextTest.java
index d90e2b8..0832126 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/context/IsisContextTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/context/IsisContextTest.java
@@ -64,9 +64,6 @@ public class IsisContextTest {
     protected AuthorizationManager mockAuthorizationManager;
 
     @Mock
-    private AuthenticationSession mockAuthenticationSession;
-
-    @Mock
     protected DomainObjectContainer mockContainer;
     
     protected OidMarshaller oidMarshaller;
@@ -89,20 +86,13 @@ public class IsisContextTest {
         
         oidMarshaller = new OidMarshaller();
         
-        context.checking(new Expectations() {
-            {
-                allowing(mockPersistenceSessionFactory).createPersistenceSession(mockSpecificationLoader,                         mockAuthenticationSession);
-                will(returnValue(mockPersistenceSession));
-                
-                ignoring(mockPersistenceSession);
-                ignoring(mockSpecificationLoader);
-                ignoring(mockPersistenceSessionFactory);
-                ignoring(mockAuthenticationManager);
-                ignoring(mockAuthorizationManager);
-
-                ignoring(mockContainer);
-            }
-        });
+        context.ignoring(
+                mockPersistenceSession,
+                mockSpecificationLoader,
+                mockAuthenticationManager,
+                mockAuthorizationManager,
+                mockContainer)
+        ;
 
         sessionFactory = new IsisSessionFactory(DeploymentType.UNIT_TESTING, configuration, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockPersistenceSessionFactory);
         authSession = new SimpleSession("tester", Collections.<String>emptyList());
@@ -120,31 +110,27 @@ public class IsisContextTest {
     @Test
     public void getConfiguration() {
         IsisContextStatic.createRelaxedInstance(sessionFactory);
+
         Assert.assertEquals(configuration, IsisContext.getConfiguration());
     }
 
     @Test
     public void openSession_getSpecificationLoader() {
         IsisContextStatic.createRelaxedInstance(sessionFactory);
-        IsisContext.openSession(authSession);
 
-        Assert.assertEquals(mockSpecificationLoader, IsisContext.getSpecificationLoader());
-    }
+        // expecting
+        context.checking(new Expectations() {{
+            one(mockPersistenceSessionFactory)
+                    .createPersistenceSession(mockSpecificationLoader, authSession);
+            will(returnValue(mockPersistenceSession));
+        }});
 
-    @Test
-    public void openSession_getAuthenticationLoader() {
-        IsisContextStatic.createRelaxedInstance(sessionFactory);
         IsisContext.openSession(authSession);
 
+        Assert.assertEquals(mockSpecificationLoader, IsisContext.getSpecificationLoader());
         Assert.assertEquals(authSession, IsisContext.getAuthenticationSession());
-    }
-    
-    @Test
-    public void openSession_getPersistenceSession() {
-        IsisContextStatic.createRelaxedInstance(sessionFactory);
-        IsisContext.openSession(authSession);
-
-        Assert.assertSame(mockPersistenceSession, IsisContext.getPersistenceSession());
+        final PersistenceSession persistenceSession = IsisContext.getPersistenceSession();
+        Assert.assertNotNull(persistenceSession);
     }
 
 

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
index 8f64054..22730e2 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_EndTransactionTest.java
@@ -25,10 +25,8 @@ import org.hamcrest.Description;
 import org.hamcrest.Matcher;
 import org.hamcrest.TypeSafeMatcher;
 import org.jmock.Expectations;
-import org.jmock.Sequence;
 import org.jmock.auto.Mock;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 
@@ -56,7 +54,7 @@ public class ObjectStoreTransactionManager_EndTransactionTest {
     @Mock
     private MessageBroker mockMessageBroker;
     @Mock
-    private TransactionalResource mockObjectStore;
+    private TransactionalResource mockTransactionalResource;
 
     private IsisTransactionManager transactionManager;
 
@@ -96,7 +94,7 @@ public class ObjectStoreTransactionManager_EndTransactionTest {
     @Test
     public void endTransactionDecrementsTransactionLevel() throws Exception {
         // setup
-        context.ignoring(mockObjectStore, mockPersistenceSession);
+        context.ignoring(mockTransactionalResource, mockPersistenceSession);
         transactionManager.startTransaction();
         transactionManager.startTransaction();
 
@@ -108,7 +106,7 @@ public class ObjectStoreTransactionManager_EndTransactionTest {
     @Test
     public void endTransactionCommitsTransactionWhenLevelDecrementsDownToZero() throws Exception {
         // setup
-        context.ignoring(mockObjectStore);
+        context.ignoring(mockTransactionalResource, mockPersistenceSession);
         transactionManager.startTransaction();
 
         assertThat(transactionManager.getTransactionLevel(), is(1));
@@ -116,43 +114,6 @@ public class ObjectStoreTransactionManager_EndTransactionTest {
         assertThat(transactionManager.getTransactionLevel(), is(0));
     }
 
-    @Test
-    public void startTransactionInteractsWithObjectStore() throws Exception {
-        // setup
-        context.ignoring(mockPersistenceSession);
-
-        context.checking(new Expectations() {
-            {
-                one(mockObjectStore).startTransaction();
-            }
-        });
-        transactionManager.startTransaction();
 
-    }
-
-    @Ignore // ISIS-1194
-    @Test
-    public void endTransactionInteractsWithObjectStore() throws Exception {
-        // setup
-        context.ignoring(mockPersistenceSession);
-
-        context.checking(new Expectations() {
-            {
-                final Sequence transactionOrdering = context.sequence("transactionOrdering");
-                oneOf(mockObjectStore).startTransaction();
-                inSequence(transactionOrdering);
-
-//                // flushed twice, once before publishing, once after
-//                exactly(3).of(mockObjectStore).execute(with(equalTo(Collections.<PersistenceCommand>emptyList())));
-//                inSequence(transactionOrdering);
-
-                oneOf(mockObjectStore).endTransaction();
-                inSequence(transactionOrdering);
-            }
-        });
-
-        transactionManager.startTransaction();
-        transactionManager.endTransaction();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java
index 17867c1..ff14fc4 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/ObjectStoreTransactionManager_StartTransactionTest.java
@@ -108,15 +108,5 @@ public class ObjectStoreTransactionManager_StartTransactionTest {
         assertThat(transactionManager.getTransactionLevel(), is(1));
     }
 
-    @Test
-    public void startTransactionCallsStartTransactionOnObjectStore() throws Exception {
-        context.checking(new Expectations() {
-            {
-                one(mockObjectStore).startTransaction();
-            }
-        });
-
-        transactionManager.startTransaction();
-    }
 
 }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
index 12ec59e..1145141 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PojoAdapterBuilder.java
@@ -113,11 +113,6 @@ public class PojoAdapterBuilder {
         return new PojoAdapterBuilder();
     }
 
-    public PojoAdapterBuilder withAggregatedId(String aggregatedId) {
-        this.aggregatedId = aggregatedId;
-        return this;
-    }
-    
     public PojoAdapterBuilder withIdentifier(String identifier) {
         this.identifier = identifier;
         return this;

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
index a94aa24..52ae5af 100644
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/core/runtime/services/i18n/po/PoReaderTest.java
@@ -27,6 +27,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.apache.isis.applib.services.i18n.LocaleProvider;
+import org.apache.isis.applib.services.i18n.TranslationsResolver;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 
 import static org.hamcrest.CoreMatchers.equalTo;
@@ -40,7 +41,8 @@ public class PoReaderTest {
 
     @Mock
     TranslationServicePo mockTranslationServicePo;
-
+    @Mock
+    TranslationsResolver mockTranslationsResolver;
     @Mock
     LocaleProvider mockLocaleProvider;
 
@@ -52,6 +54,9 @@ public class PoReaderTest {
             allowing(mockTranslationServicePo).getLocaleProvider();
             will(returnValue(mockLocaleProvider));
 
+            allowing(mockTranslationServicePo).getTranslationsResolver();
+            will(returnValue(mockTranslationsResolver));
+
             allowing(mockLocaleProvider).getLocale();
             will(returnValue(Locale.UK));
         }});

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/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 e4446d4..1f40ec6 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,11 +19,13 @@
 
 package org.apache.isis.core.runtime.system;
 
+import org.datanucleus.enhancement.Persistable;
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+
 import org.apache.isis.applib.annotation.When;
 import org.apache.isis.applib.annotation.Where;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
@@ -46,7 +48,9 @@ import org.apache.isis.core.metamodel.interactions.PropertyVisibilityContext;
 import org.apache.isis.core.metamodel.interactions.UsabilityContext;
 import org.apache.isis.core.metamodel.interactions.VisibilityContext;
 import org.apache.isis.core.metamodel.spec.Instance;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
+import org.apache.isis.core.metamodel.spec.SpecificationLoader;
 import org.apache.isis.core.metamodel.spec.feature.ObjectMemberDependencies;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectMemberAbstract;
 import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdapterBuilder;
@@ -54,14 +58,14 @@ import org.apache.isis.core.runtime.persistence.objectstore.transaction.PojoAdap
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
 import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.assertThat;
 import static org.hamcrest.Matchers.equalTo;
 import static org.hamcrest.Matchers.is;
 import static org.hamcrest.Matchers.isEmptyString;
 import static org.hamcrest.Matchers.not;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 public class ObjectMemberAbstractTest {
 
@@ -77,6 +81,13 @@ public class ObjectMemberAbstractTest {
     private AuthenticationSessionProvider mockAuthenticationSessionProvider;
     @Mock
     private AuthenticationSession mockAuthenticationSession;
+    @Mock
+    private SpecificationLoader mockSpecificationLoader;
+    @Mock
+    private ObjectSpecification mockSpecForCustomer;
+
+    @Mock
+    private Persistable mockPersistable;
 
     @Before
     public void setUp() throws Exception {
@@ -86,10 +97,35 @@ public class ObjectMemberAbstractTest {
             allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
             will(returnValue(mockAuthenticationSession));
         }});
-        persistentAdapter = PojoAdapterBuilder.create().build();
-        transientAdapter = PojoAdapterBuilder.create().with(Persistence.TRANSIENT).build();
+        persistentAdapter = PojoAdapterBuilder.create()
+                                .with(mockSpecificationLoader)
+                                .withOid("CUS|1")
+                                .withPojo(mockPersistable)
+                                .build();
+        transientAdapter = PojoAdapterBuilder.create()
+                                .with(mockSpecificationLoader)
+                                .with(Persistence.TRANSIENT)
+                                .withPojo(mockPersistable)
+                                .build();
 
         testMember = new ObjectMemberAbstractImpl("id");
+
+        context.checking(new Expectations() {{
+            allowing(mockSpecificationLoader).lookupBySpecId(ObjectSpecId.of("CUS"));
+            will(returnValue(mockSpecForCustomer));
+            allowing(mockSpecificationLoader).loadSpecification(with(any(Class.class)));
+            will(returnValue(mockSpecForCustomer));
+
+            allowing(mockSpecForCustomer).isService();
+            will(returnValue(false));
+
+            allowing(mockSpecForCustomer).isViewModel();
+            will(returnValue(false));
+
+            allowing(mockSpecForCustomer).getShortIdentifier();
+            will(returnValue("Customer"));
+        }});
+
     }
 
     @Test
@@ -128,6 +164,15 @@ public class ObjectMemberAbstractTest {
     public void testVisibleWhenTargetPersistentAndHiddenFacetSetToOncePersisted() {
         testMember.addFacet(new HideForContextFacetNone(testMember));
         testMember.addFacet(new HiddenFacetAbstractImpl(When.ONCE_PERSISTED, Where.ANYWHERE, testMember){});
+
+        context.checking(new Expectations() {{
+            allowing(mockPersistable).dnIsPersistent();
+            will(returnValue(true));
+            allowing(mockPersistable).dnIsDeleted();
+            will(returnValue(false));
+        }});
+
+
         assertFalse(testMember.isVisible(persistentAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE).isAllowed());
     }
 
@@ -135,6 +180,15 @@ public class ObjectMemberAbstractTest {
     public void testVisibleWhenTargetPersistentAndHiddenFacetSetToUntilPersisted() {
         testMember.addFacet(new HideForContextFacetNone(testMember));
         testMember.addFacet(new HiddenFacetAbstractImpl(When.UNTIL_PERSISTED, Where.ANYWHERE, testMember){});
+
+        context.checking(new Expectations() {{
+            allowing(mockPersistable).dnIsPersistent();
+            will(returnValue(true));
+            allowing(mockPersistable).dnIsDeleted();
+            will(returnValue(false));
+        }});
+
+
         final Consent visible = testMember.isVisible(persistentAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE);
         assertTrue(visible.isAllowed());
     }
@@ -143,7 +197,14 @@ public class ObjectMemberAbstractTest {
     public void testVisibleWhenTargetTransientAndHiddenFacetSetToUntilPersisted() {
         testMember.addFacet(new HideForContextFacetNone(testMember));
         testMember.addFacet(new HiddenFacetAbstractImpl(When.UNTIL_PERSISTED, Where.ANYWHERE, testMember){});
-        
+
+        context.checking(new Expectations() {{
+            allowing(mockPersistable).dnIsPersistent();
+            will(returnValue(false));
+            allowing(mockPersistable).dnIsDeleted();
+            will(returnValue(false));
+        }});
+
         final Consent visible = testMember.isVisible(transientAdapter, InteractionInitiatedBy.USER, Where.ANYWHERE);
         assertFalse(visible.isAllowed());
     }

http://git-wip-us.apache.org/repos/asf/isis/blob/550b88d6/core/runtime/src/test/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryAbstractTest_init_and_shutdown.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryAbstractTest_init_and_shutdown.java b/core/runtime/src/test/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryAbstractTest_init_and_shutdown.java
deleted file mode 100644
index b2435aa..0000000
--- a/core/runtime/src/test/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryAbstractTest_init_and_shutdown.java
+++ /dev/null
@@ -1,90 +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.core.runtime.system.session;
-
-import java.util.List;
-import com.google.common.collect.Lists;
-import org.jmock.auto.Mock;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.isis.applib.DomainObjectContainer;
-import org.apache.isis.core.commons.config.IsisConfigurationDefault;
-import org.apache.isis.core.metamodel.adapter.oid.OidMarshaller;
-import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
-import org.apache.isis.core.runtime.authentication.AuthenticationManager;
-import org.apache.isis.core.runtime.authorization.AuthorizationManager;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSessionFactory;
-import org.apache.isis.core.runtime.system.DeploymentType;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2;
-import org.apache.isis.core.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
-
-public class IsisSessionFactoryAbstractTest_init_and_shutdown {
-
-    public static class DomainServiceWithSomeId {
-        public String getId() { return "someId"; }
-    }
-
-    public static class DomainServiceWithDuplicateId {
-        public String getId() { return "someId"; }
-    }
-
-    @Rule
-    public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
-
-    @Mock
-    private DeploymentType mockDeploymentType;
-    @Mock
-    private SpecificationLoaderSpi mockSpecificationLoader;
-    @Mock
-    private AuthenticationManager mockAuthenticationManager;
-    @Mock
-    private AuthorizationManager mockAuthorizationManager;
-    @Mock
-    private PersistenceSessionFactory mockPersistenceSessionFactory;
-    @Mock
-    private OidMarshaller mockOidMarshaller;
-    
-    @Mock
-    private DomainObjectContainer mockContainer;
-    
-    private IsisConfigurationDefault configuration;
-    private List<Object> serviceList;
-
-    private IsisSessionFactory isf;
-    
-    @Before
-    public void setUp() throws Exception {
-        configuration = new IsisConfigurationDefault();
-        configuration.add("foo", "bar");
-        
-        serviceList = Lists.newArrayList();
-        context.ignoring(mockDeploymentType, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockContainer, mockPersistenceSessionFactory, mockOidMarshaller);
-    }
-    
-
-    @Test(expected=IllegalStateException.class)
-    public void validate_DomainServicesWithDuplicateIds() {
-        serviceList.add(new DomainServiceWithSomeId());
-        serviceList.add(new DomainServiceWithDuplicateId());
-        isf = new IsisSessionFactory(mockDeploymentType, configuration, mockSpecificationLoader, mockAuthenticationManager, mockAuthorizationManager, mockPersistenceSessionFactory) {
-        };
-    }
-}