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/01/20 08:26:46 UTC
[2/4] isis git commit: ISIS-970: unit tests for @DomainObject,
@ViewModel; also @DomainObjectLayout and @ViewModelLayout
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/audited/configuration/DomainObjectAnnotationFacetFactoryTest_auditableFromConfiguration.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/audited/configuration/DomainObjectAnnotationFacetFactoryTest_auditableFromConfiguration.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/audited/configuration/DomainObjectAnnotationFacetFactoryTest_auditableFromConfiguration.java
deleted file mode 100644
index c49e4d3..0000000
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/audited/configuration/DomainObjectAnnotationFacetFactoryTest_auditableFromConfiguration.java
+++ /dev/null
@@ -1,137 +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.metamodel.facets.object.audited.configuration;
-
-import java.util.UUID;
-import org.jmock.Expectations;
-import org.junit.After;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.apache.isis.applib.services.HasTransactionId;
-import org.apache.isis.core.metamodel.facetapi.Facet;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
-import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
-import org.apache.isis.core.metamodel.facets.object.audit.configuration.AuditableFacetForDomainObjectAnnotationAsConfigured;
-import org.apache.isis.core.metamodel.facets.object.domainobject.DomainObjectAnnotationFacetFactory;
-
-public class DomainObjectAnnotationFacetFactoryTest_auditableFromConfiguration extends AbstractFacetFactoryJUnit4TestCase {
-
- private DomainObjectAnnotationFacetFactory facetFactory;
-
- @Before
- public void setUp() throws Exception {
- facetFactory = new DomainObjectAnnotationFacetFactory();
- facetFactory.setConfiguration(mockConfiguration);
- }
-
- @After
- public void tearDown() throws Exception {
- facetFactory = null;
- }
-
- class Customer {
- public void someAction() {
- }
- }
-
- class SomeTransactionalId implements HasTransactionId {
- public void someAction() {
- }
-
- @Override
- public UUID getTransactionId() {
- return null;
- }
-
- @Override
- public void setTransactionId(UUID transactionId) {
- }
- }
-
-
- @Test
- public void ignoreHasTransactionId() {
- String configuredValue = "all";
-
- allowingConfigurationToReturn(configuredValue);
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolderImpl));
-
- final Facet facet = facetHolderImpl.getFacet(AuditableFacet.class);
- Assert.assertNotNull(facet);
-
- expectNoMethodsRemoved();
- }
-
-
- @Test
- public void configured_value_set_to_all() {
- allowingConfigurationToReturn("all");
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolderImpl));
-
- final Facet facet = facetHolderImpl.getFacet(AuditableFacet.class);
- Assert.assertTrue(facet instanceof AuditableFacetForDomainObjectAnnotationAsConfigured);
-
- expectNoMethodsRemoved();
- }
-
- @Test
- public void configured_value_set_to_none() {
- allowingConfigurationToReturn("none");
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolderImpl));
-
- final Facet facet = facetHolderImpl.getFacet(CommandFacet.class);
- Assert.assertNull(facet);
-
- expectNoMethodsRemoved();
- }
-
- @Test
- public void configured_value_set_to_not_recognized() {
- allowingConfigurationToReturn("foobar");
-
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolderImpl));
-
- final Facet facet = facetHolderImpl.getFacet(CommandFacet.class);
- Assert.assertNull(facet);
-
- expectNoMethodsRemoved();
- }
-
-
- private void allowingConfigurationToReturn(final String value) {
- context.checking(new Expectations() {
- {
- allowing(mockConfiguration).getString("isis.services.audit.objects");
- will(returnValue(value));
-
- // anything else
- ignoring(mockConfiguration);
- }
- });
- }
-
-
-}
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
index 2acfda8..3110810 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/cssclassfa/CssClassFaFacetOnTypeAnnotationFactoryTest.java
@@ -26,7 +26,7 @@ import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacet;
import org.apache.isis.core.metamodel.facets.members.cssclassfa.CssClassFaFacetAbstract;
-import org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation.annotation.CssClassFaFacetOnTypeAnnotationFactory;
+import org.apache.isis.core.metamodel.facets.object.cssclassfa.annotation.CssClassFaFacetOnTypeAnnotationFactory;
import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.instanceOf;
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/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
new file mode 100644
index 0000000..36940e9
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobject/DomainObjectAnnotationFacetFactoryTest.java
@@ -0,0 +1,1008 @@
+/*
+ * 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.facets.object.domainobject;
+
+import java.util.UUID;
+import org.jmock.Expectations;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.apache.isis.applib.annotation.Audited;
+import org.apache.isis.applib.annotation.DomainObject;
+import org.apache.isis.applib.annotation.Immutable;
+import org.apache.isis.applib.annotation.PublishedObject;
+import org.apache.isis.applib.annotation.PublishingChangeKind;
+import org.apache.isis.applib.annotation.PublishingPayloadFactoryForObject;
+import org.apache.isis.applib.services.HasTransactionId;
+import org.apache.isis.applib.services.publish.EventPayload;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
+import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
+import org.apache.isis.core.metamodel.facets.object.audit.annotation.AuditableFacetForAuditedAnnotation;
+import org.apache.isis.core.metamodel.facets.object.autocomplete.AutoCompleteFacet;
+import org.apache.isis.core.metamodel.facets.object.immutable.ImmutableFacet;
+import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
+import org.apache.isis.core.metamodel.facets.object.objectspecid.ObjectSpecIdFacet;
+import org.apache.isis.core.metamodel.facets.object.publishedobject.PublishedObjectFacet;
+import org.apache.isis.core.metamodel.facets.object.publishedobject.annotation.PublishedObjectFacetForPublishedObjectAnnotation;
+import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
+import org.apache.isis.core.metamodel.facets.propparam.choices.ChoicesFacet;
+import org.apache.isis.core.metamodel.spec.ObjectSpecId;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.Matchers.instanceOf;
+import static org.junit.Assert.assertThat;
+
+public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
+
+ DomainObjectAnnotationFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ facetFactory = new DomainObjectAnnotationFacetFactory();
+ facetFactory.setConfiguration(mockConfiguration);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ facetFactory = null;
+ }
+
+ class Customer {
+ }
+
+
+ class SomeTransactionalId implements HasTransactionId {
+
+ @Override
+ public UUID getTransactionId() {
+ return null;
+ }
+
+ @Override
+ public void setTransactionId(final UUID transactionId) {
+ }
+ }
+
+ protected void allowingConfigurationToReturn(final String name, final String value) {
+ context.checking(new Expectations() {
+ {
+ allowing(mockConfiguration).getString(name);
+ will(returnValue(value));
+
+ // anything else
+ ignoring(mockConfiguration);
+ }
+ });
+ }
+
+ protected void ignoringConfiguration() {
+ context.checking(new Expectations() {
+ {
+ ignoring(mockConfiguration);
+ }
+ });
+ }
+
+
+ public static class Auditing extends DomainObjectAnnotationFacetFactoryTest {
+
+ @Audited
+ class CustomerWithAuditedAnnotation {
+ }
+
+ @DomainObject(auditing = org.apache.isis.applib.annotation.Auditing.AS_CONFIGURED)
+ class CustomerWithDomainObjectAndAuditingSetToAsConfigured {
+ }
+
+ @DomainObject(auditing = org.apache.isis.applib.annotation.Auditing.DISABLED)
+ class CustomerWithDomainObjectAndAuditingSetToDisabled {
+ }
+
+ @DomainObject(auditing = org.apache.isis.applib.annotation.Auditing.ENABLED)
+ class CustomerWithDomainObjectAndAuditingSetToEnabled {
+ }
+
+ @Test
+ public void ignoreHasTransactionId() {
+
+ allowingConfigurationToReturn("isis.services.audit.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(HasTransactionId.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ public static class WhenNotAnnotatedAndDefaultsFromConfiguration extends Auditing {
+
+ @Test
+ public void configured_value_set_to_all() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertTrue(facet instanceof AuditableFacetForDomainObjectAnnotationAsConfigured);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_none() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "none");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "foobar");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithAuditedAnnotation extends Auditing {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ allowingConfigurationToReturn("isis.services.audit.objects", null);
+ }
+
+ @Test
+ public void has_annotation() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithAuditedAnnotation.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof AuditableFacetForAuditedAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void does_not_have_annotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithAuditingSetToAsConfigured extends Auditing {
+
+ @Test
+ public void configured_value_set_to_all() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof AuditableFacetForDomainObjectAnnotationAsConfigured);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_none() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "none");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "foobar");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithDomainObjectAnnotationWithAuditingSetToEnabled extends Auditing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.services.audit.objects", null);
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToEnabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof AuditableFacetForDomainObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithAuditingSetToDisabled extends Auditing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.services.audit.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAuditingSetToDisabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ }
+
+ public static class Publishing extends DomainObjectAnnotationFacetFactoryTest {
+
+ @PublishedObject
+ class CustomerWithPublishedObjectAnnotation {
+ }
+
+ @DomainObject(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
+ class CustomerWithDomainObjectAndPublishingSetToAsConfigured {
+ }
+
+ @DomainObject(publishing = org.apache.isis.applib.annotation.Publishing.DISABLED)
+ class CustomerWithDomainObjectAndPublishingSetToDisabled {
+ }
+
+ @DomainObject(publishing = org.apache.isis.applib.annotation.Publishing.ENABLED)
+ class CustomerWithDomainObjectAndPublishingSetToEnabled {
+ }
+
+ public static class CustomerPayloadFactory implements PublishingPayloadFactoryForObject {
+ @Override
+ public EventPayload payloadFor(final Object changedObject, final PublishingChangeKind publishingChangeKind) {
+ return null;
+ }
+ }
+
+ @DomainObject(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED, publishingPayloadFactory = CustomerPayloadFactory.class)
+ class CustomerWithDomainObjectAndPublishingSetToAsConfiguredWithCustomPayloadFactory {
+ }
+
+ @DomainObject(publishing = org.apache.isis.applib.annotation.Publishing.ENABLED, publishingPayloadFactory = CustomerPayloadFactory.class)
+ class CustomerWithDomainObjectAndPublishingSetToEnabledWithCustomPayloadFactory {
+ }
+
+ @Test
+ public void ignoreHasTransactionId() {
+
+ allowingConfigurationToReturn("isis.services.publish.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(HasTransactionId.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ public static class WhenNotAnnotatedAndDefaultsFromConfiguration extends Publishing {
+
+ @Test
+ public void configured_value_set_to_all() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForDomainObjectAnnotationAsConfigured);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_none() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "none");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "foobar");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithPublishedObjectAnnotation extends Publishing {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ allowingConfigurationToReturn("isis.services.publish.objects", null);
+ }
+
+ @Test
+ public void has_annotation() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithPublishedObjectAnnotation.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForPublishedObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void does_not_have_annotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithPublishingSetToAsConfigured extends Publishing {
+
+ @Test
+ public void configured_value_set_to_all() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForDomainObjectAnnotationAsConfigured);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_all_forCustomPayloadFactory() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToAsConfiguredWithCustomPayloadFactory.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForDomainObjectAnnotationAsConfigured);
+
+ final PublishedObject.PayloadFactory payloadFactory = ((PublishedObjectFacetForDomainObjectAnnotationAsConfigured) facet).value();
+
+ assertThat(payloadFactory, instanceOf(PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter.class));
+ final PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter legacyAdapter = (PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter) payloadFactory;
+
+ final PublishingPayloadFactoryForObject specifiedPayloadFactory = legacyAdapter.getPayloadFactory();
+ assertThat(specifiedPayloadFactory, instanceOf(CustomerPayloadFactory.class));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_none() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "none");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "foobar");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithPublishingSetToEnabled extends Publishing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.services.publish.objects", null);
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToEnabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForDomainObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void irrespective_of_configured_value_forCustomPayloadFactory() {
+ allowingConfigurationToReturn("isis.services.publish.objects", null);
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToEnabledWithCustomPayloadFactory.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PublishedObjectFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof PublishedObjectFacetForDomainObjectAnnotation);
+
+ final PublishedObject.PayloadFactory payloadFactory = ((PublishedObjectFacetForDomainObjectAnnotation) facet).value();
+
+ assertThat(payloadFactory, instanceOf(PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter.class));
+ final PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter legacyAdapter = (PublishedObjectFacetForDomainObjectAnnotation.LegacyAdapter) payloadFactory;
+
+ final PublishingPayloadFactoryForObject specifiedPayloadFactory = legacyAdapter.getPayloadFactory();
+ assertThat(specifiedPayloadFactory, instanceOf(CustomerPayloadFactory.class));
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithDomainObjectAnnotationWithPublishingSetToDisabled extends Publishing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.services.publish.objects", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndPublishingSetToDisabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+ }
+
+ public static class AutoComplete extends DomainObjectAnnotationFacetFactoryTest {
+
+ class CustomerRepository {
+ public String lookup(final String x) { return null; }
+ }
+
+ @DomainObject(autoCompleteRepository = CustomerRepository.class, autoCompleteAction = "lookup")
+ class CustomerWithDomainObjectAndAutoCompleteRepositoryAndAction {
+ }
+
+ @DomainObject(autoCompleteRepository = CustomerRepository.class)
+ class CustomerWithDomainObjectAndAutoCompleteRepository {
+ }
+
+ @DomainObject
+ class CustomerWithDomainObjectButNoAutoCompleteRepository {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ ignoringConfiguration();
+ }
+
+ @Test
+ public void whenDomainObjectAndAutoCompleteRepositoryAndAction() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAutoCompleteRepositoryAndAction.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AutoCompleteFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof AutoCompleteFacetForDomainObjectAnnotation);
+
+ final AutoCompleteFacetForDomainObjectAnnotation autoCompleteFacet = (AutoCompleteFacetForDomainObjectAnnotation) facet;
+
+ assertThat(CustomerRepository.class.isAssignableFrom(autoCompleteFacet.getRepositoryClass()), is(true));
+ assertThat(autoCompleteFacet.getActionName(), is("lookup"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndAutoCompleteRepository() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndAutoCompleteRepository.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AutoCompleteFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof AutoCompleteFacetForDomainObjectAnnotation);
+
+ final AutoCompleteFacetForDomainObjectAnnotation autoCompleteFacet = (AutoCompleteFacetForDomainObjectAnnotation) facet;
+
+ assertThat(CustomerRepository.class.isAssignableFrom(autoCompleteFacet.getRepositoryClass()), is(true));
+ assertThat(autoCompleteFacet.getActionName(), is("autoComplete"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAnnotationButNoAutoComplete() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectButNoAutoCompleteRepository.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AutoCompleteFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenNoDomainObjectAnnotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AutoCompleteFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class Bounded extends DomainObjectAnnotationFacetFactoryTest {
+
+ @DomainObject(bounded = true)
+ class CustomerWithDomainObjectAndBoundedSetToTrue {
+ }
+
+ @DomainObject(bounded = false)
+ class CustomerWithDomainObjectAndBoundedSetToFalse {
+ }
+
+ @DomainObject
+ class CustomerWithDomainObjectButNoBounded {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ ignoringConfiguration();
+ }
+
+ @Test
+ public void whenDomainObjectAndBoundedSetToTrue() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndBoundedSetToTrue.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ChoicesFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof ChoicesFacetForDomainObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndAutoCompleteRepository() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndBoundedSetToFalse.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ChoicesFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenNoDomainObjectAnnotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ChoicesFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class Editing extends DomainObjectAnnotationFacetFactoryTest {
+
+ @Immutable
+ class CustomerWithImmutableAnnotation {
+ }
+
+ @DomainObject(editing = org.apache.isis.applib.annotation.Editing.AS_CONFIGURED)
+ class CustomerWithDomainObjectAndEditingSetToAsConfigured {
+ }
+
+ @DomainObject(editing = org.apache.isis.applib.annotation.Editing.DISABLED)
+ class CustomerWithDomainObjectAndEditingSetToDisabled {
+ }
+
+ @DomainObject(editing = org.apache.isis.applib.annotation.Editing.ENABLED)
+ class CustomerWithDomainObjectAndEditingSetToEnabled {
+ }
+
+
+ public static class WhenNotAnnotatedAndDefaultsFromConfiguration extends Editing {
+
+ @Test
+ public void configured_value_set_to_true() {
+ allowingConfigurationToReturn("isis.objects.editing", "true");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_false() {
+ allowingConfigurationToReturn("isis.objects.editing", "false");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof ImmutableFacetForDomainObjectAnnotationAsConfigured);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.objects.editing", "foobar");
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithImmutableAnnotation extends Editing {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ ignoringConfiguration();
+ }
+
+ @Ignore // processing is actually still in ImmutableFacetFactory
+ @Test
+ public void has_annotation() {
+
+ final ProcessClassContext processClassContext = new ProcessClassContext(CustomerWithImmutableAnnotation.class, null, mockMethodRemover, facetHolder);
+ facetFactory.process(processClassContext);
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Ignore // processing is actually still in ImmutableFacetFactory
+ @Test
+ public void does_not_have_annotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithEditingSetToAsConfigured extends Editing {
+
+ @Test
+ public void configured_value_set_to_true() {
+ allowingConfigurationToReturn("isis.objects.editing", "true");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_false() {
+ allowingConfigurationToReturn("isis.objects.editing", "false");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof ImmutableFacetForDomainObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void configured_value_set_to_not_recognized() {
+ allowingConfigurationToReturn("isis.objects.editing", "foobar");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToAsConfigured.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ImmutableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class WithDomainObjectAnnotationWithEditingSetToEnabled extends Editing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.services.audit.objects", null);
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToEnabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof AuditableFacetForDomainObjectAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class WithDomainObjectAnnotationWithEditingSetToDisabled extends Editing {
+
+ @Test
+ public void irrespective_of_configured_value() {
+ allowingConfigurationToReturn("isis.objects.editing", "all");
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndEditingSetToDisabled.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(AuditableFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ }
+
+ public static class ObjectType extends DomainObjectAnnotationFacetFactoryTest {
+
+ @DomainObject(objectType = "CUS")
+ class CustomerWithDomainObjectAndObjectTypeSet {
+ }
+
+ @DomainObject
+ class CustomerWithDomainObjectButNoObjectType {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ ignoringConfiguration();
+ }
+
+ @Test
+ public void whenDomainObjectAndObjectTypeSetToTrue() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndObjectTypeSet.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof ObjectSpecIdFacetForDomainObjectAnnotation);
+ final ObjectSpecIdFacetForDomainObjectAnnotation facetForDomainObjectAnnotation =
+ (ObjectSpecIdFacetForDomainObjectAnnotation) facet;
+
+ assertThat(facetForDomainObjectAnnotation.value(), is(ObjectSpecId.of("CUS")));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndObjectTypeNotSet() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectButNoObjectType.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenNoDomainObjectAnnotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+ public static class Nature extends DomainObjectAnnotationFacetFactoryTest {
+
+ @DomainObject(nature = org.apache.isis.applib.annotation.Nature.JDO_ENTITY)
+ class CustomerWithDomainObjectAndNatureSetToJdoEntity {
+ }
+
+ @DomainObject(nature = org.apache.isis.applib.annotation.Nature.NOT_SPECIFIED)
+ class CustomerWithDomainObjectAndNatureSetToNotSpecified {
+ }
+
+ @DomainObject(nature = org.apache.isis.applib.annotation.Nature.INMEMORY_ENTITY)
+ class CustomerWithDomainObjectAndNatureSetToInmemoryEntity {
+ }
+
+ @DomainObject(nature = org.apache.isis.applib.annotation.Nature.EXTERNAL_ENTITY)
+ class CustomerWithDomainObjectAndNatureSetToExternalEntity {
+ }
+
+ @DomainObject(nature = org.apache.isis.applib.annotation.Nature.VIEW_MODEL)
+ class CustomerWithDomainObjectAndNatureSetToViewModel {
+ }
+
+ @DomainObject
+ class CustomerWithDomainObjectButNoNature {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ ignoringConfiguration();
+ }
+
+ @Test
+ public void whenDomainObjectAndNatureSetToJdoEntity() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndNatureSetToJdoEntity.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndNatureSetToNotSpecified() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndNatureSetToNotSpecified.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndNatureSetToViewModel() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndNatureSetToViewModel.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof RecreatableObjectFacetForDomainObjectAnnotation);
+ final RecreatableObjectFacetForDomainObjectAnnotation facetForDomainObjectAnnotation =
+ (RecreatableObjectFacetForDomainObjectAnnotation) facet;
+
+ assertThat(facetForDomainObjectAnnotation.getArchitecturalLayer(), is(ViewModelFacet.ArchitecturalLayer.APPLICATION));
+
+ expectNoMethodsRemoved();
+ }
+
+
+ @Test
+ public void whenDomainObjectAndNatureSetToExternalEntity() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndNatureSetToExternalEntity.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof RecreatableObjectFacetForDomainObjectAnnotation);
+ final RecreatableObjectFacetForDomainObjectAnnotation facetForDomainObjectAnnotation =
+ (RecreatableObjectFacetForDomainObjectAnnotation) facet;
+
+ assertThat(facetForDomainObjectAnnotation.getArchitecturalLayer(), is(ViewModelFacet.ArchitecturalLayer.DOMAIN));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDomainObjectAndNatureSetToInmemoryEntity() {
+
+ facetFactory.process(new ProcessClassContext(CustomerWithDomainObjectAndNatureSetToInmemoryEntity.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNotNull(facet);
+
+ Assert.assertTrue(facet instanceof RecreatableObjectFacetForDomainObjectAnnotation);
+ final RecreatableObjectFacetForDomainObjectAnnotation facetForDomainObjectAnnotation =
+ (RecreatableObjectFacetForDomainObjectAnnotation) facet;
+
+ assertThat(facetForDomainObjectAnnotation.getArchitecturalLayer(), is(ViewModelFacet.ArchitecturalLayer.DOMAIN));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenNoDomainObjectAnnotation() {
+
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(ViewModelFacet.class);
+ Assert.assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ }
+
+
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
new file mode 100644
index 0000000..428c19a
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/domainobjectlayout/DomainObjectLayoutFactoryTest.java
@@ -0,0 +1,552 @@
+/*
+ * 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.facets.object.domainobjectlayout;
+
+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.annotation.BookmarkPolicy;
+import org.apache.isis.applib.annotation.DomainObjectLayout;
+import org.apache.isis.applib.annotation.ViewModelLayout;
+import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
+import org.apache.isis.core.metamodel.facets.FacetFactory;
+import org.apache.isis.core.metamodel.facets.all.describedas.DescribedAsFacet;
+import org.apache.isis.core.metamodel.facets.all.named.NamedFacet;
+import org.apache.isis.core.metamodel.facets.members.cssclass.CssClassFacet;
+import org.apache.isis.core.metamodel.facets.object.bookmarkpolicy.BookmarkPolicyFacet;
+import org.apache.isis.core.metamodel.facets.object.paged.PagedFacet;
+import org.apache.isis.core.metamodel.facets.object.plural.PluralFacet;
+
+import static org.hamcrest.Matchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+public class DomainObjectLayoutFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
+
+ DomainObjectLayoutFacetFactory facetFactory;
+
+ @Before
+ public void setUp() throws Exception {
+ facetFactory = new DomainObjectLayoutFacetFactory();
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ facetFactory = null;
+ super.tearDown();
+ }
+
+ @DomainObjectLayout(
+ bookmarking = BookmarkPolicy.AS_ROOT,
+ cssClass = "foobar",
+ describedAs = "This is a description",
+ named = "Name override",
+ paged = 20,
+ plural = "Customers Plural Form"
+ )
+ class Customer {
+ }
+ @DomainObjectLayout(
+ )
+ class CustomerWithDefaults {
+ }
+
+ @ViewModelLayout(
+ bookmarking = BookmarkPolicy.AS_ROOT,
+ cssClass = "foobar",
+ describedAs = "This is a description",
+ named = "Name override",
+ paged = 20,
+ plural = "Customers Plural Form"
+ )
+ class CustomerViewModel {
+ }
+ @ViewModelLayout(
+ )
+ class CustomerViewModelWithDefaults {
+ }
+
+ public static class Bookmarking extends DomainObjectLayoutFactoryTest {
+
+ public static class ForDomainObjectLayout extends Bookmarking {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(BookmarkPolicyFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof BookmarkPolicyFacetForDomainObjectLayoutAnnotation);
+
+ final BookmarkPolicyFacetForDomainObjectLayoutAnnotation facetImpl = (BookmarkPolicyFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is(BookmarkPolicy.AS_ROOT));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(BookmarkPolicyFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends Bookmarking {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(BookmarkPolicyFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof BookmarkPolicyFacetForViewModelLayoutAnnotation);
+
+ final BookmarkPolicyFacetForViewModelLayoutAnnotation facetImpl =
+ (BookmarkPolicyFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is(BookmarkPolicy.AS_ROOT));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(BookmarkPolicyFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+ public static class CssClass extends DomainObjectLayoutFactoryTest {
+
+ @Mock
+ ObjectAdapter mockAdapter;
+
+ public static class ForDomainObjectLayout extends CssClass {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(CssClassFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof CssClassFacetForDomainObjectLayoutAnnotation);
+
+ final CssClassFacetForDomainObjectLayoutAnnotation facetImpl = (CssClassFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.cssClass(mockAdapter), is("foobar"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(CssClassFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends CssClass {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(CssClassFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof CssClassFacetForViewModelLayoutAnnotation);
+
+ final CssClassFacetForViewModelLayoutAnnotation facetImpl = (CssClassFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.cssClass(mockAdapter), is("foobar"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(CssClassFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+ public static class DescribedAs extends DomainObjectLayoutFactoryTest {
+
+ @Mock
+ ObjectAdapter mockAdapter;
+
+ public static class ForDomainObjectLayout extends DescribedAs {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof DescribedAsFacetForDomainObjectLayoutAnnotation);
+
+ final DescribedAsFacetForDomainObjectLayoutAnnotation facetImpl = (DescribedAsFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("This is a description"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends DescribedAs {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof DescribedAsFacetForViewModelLayoutAnnotation);
+
+ final DescribedAsFacetForViewModelLayoutAnnotation facetImpl = (DescribedAsFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("This is a description"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(DescribedAsFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+ public static class Named extends DomainObjectLayoutFactoryTest {
+
+ @Mock
+ ObjectAdapter mockAdapter;
+
+ public static class ForDomainObjectLayout extends Named {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(NamedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof NamedFacetForDomainObjectLayoutAnnotation);
+
+ final NamedFacetForDomainObjectLayoutAnnotation facetImpl = (NamedFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("Name override"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(NamedFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends Named {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(NamedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof NamedFacetForViewModelLayoutAnnotation);
+
+ final NamedFacetForViewModelLayoutAnnotation facetImpl = (NamedFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("Name override"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(NamedFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+ public static class Paged extends DomainObjectLayoutFactoryTest {
+
+ @Mock
+ ObjectAdapter mockAdapter;
+
+ public static class ForDomainObjectLayout extends Paged {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PagedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PagedFacetForDomainObjectLayoutAnnotation);
+
+ final PagedFacetForDomainObjectLayoutAnnotation facetImpl = (PagedFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is(20));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PagedFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends Paged {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PagedFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PagedFacetForViewModelLayoutAnnotation);
+
+ final PagedFacetForViewModelLayoutAnnotation facetImpl = (PagedFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is(20));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PagedFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+ public static class Plural extends DomainObjectLayoutFactoryTest {
+
+ @Mock
+ ObjectAdapter mockAdapter;
+
+ public static class ForDomainObjectLayout extends Plural {
+
+ @Before
+ public void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = Customer.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PluralFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PluralFacetForDomainObjectLayoutAnnotation);
+
+ final PluralFacetForDomainObjectLayoutAnnotation facetImpl = (PluralFacetForDomainObjectLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("Customers Plural Form"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PluralFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ public static class ForViewModelLayout extends Plural {
+
+ @Test
+ public void whenSpecified() {
+
+ final Class<?> cls = CustomerViewModel.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PluralFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PluralFacetForViewModelLayoutAnnotation);
+
+ final PluralFacetForViewModelLayoutAnnotation facetImpl = (PluralFacetForViewModelLayoutAnnotation) facet;
+ Assert.assertThat(facetImpl.value(), is("Customers Plural Form"));
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void whenDefaults() {
+
+ final Class<?> cls = CustomerViewModelWithDefaults.class;
+
+ facetFactory.process(new FacetFactory.ProcessClassContext(cls, null, mockMethodRemover, facetHolder));
+
+ final Facet facet = facetHolder.getFacet(PluralFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+ }
+
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAnnotationFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAnnotationFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAnnotationFactoryTest.java
index 10b8c75..2b43a0c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAnnotationFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/immutable/ImmutableFacetAnnotationFactoryTest.java
@@ -25,7 +25,7 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetAnnotationFactory;
-import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetAnnotation;
+import org.apache.isis.core.metamodel.facets.object.immutable.immutableannot.ImmutableFacetForImmutableAnnotation;
public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTest {
@@ -53,8 +53,8 @@ public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTes
final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof ImmutableFacetAnnotation);
- final ImmutableFacetAnnotation immutableFacetAnnotation = (ImmutableFacetAnnotation) facet;
+ assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+ final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
assertEquals(When.ALWAYS, immutableFacetAnnotation.when());
assertNoMethodsRemoved();
@@ -69,8 +69,8 @@ public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTes
final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof ImmutableFacetAnnotation);
- final ImmutableFacetAnnotation immutableFacetAnnotation = (ImmutableFacetAnnotation) facet;
+ assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+ final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
assertEquals(When.ALWAYS, immutableFacetAnnotation.when());
assertNoMethodsRemoved();
@@ -85,8 +85,8 @@ public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTes
final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof ImmutableFacetAnnotation);
- final ImmutableFacetAnnotation immutableFacetAnnotation = (ImmutableFacetAnnotation) facet;
+ assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+ final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
assertEquals(When.NEVER, immutableFacetAnnotation.when());
assertNoMethodsRemoved();
@@ -101,8 +101,8 @@ public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTes
final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof ImmutableFacetAnnotation);
- final ImmutableFacetAnnotation immutableFacetAnnotation = (ImmutableFacetAnnotation) facet;
+ assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+ final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
assertEquals(When.ONCE_PERSISTED, immutableFacetAnnotation.when());
assertNoMethodsRemoved();
@@ -117,8 +117,8 @@ public class ImmutableFacetAnnotationFactoryTest extends AbstractFacetFactoryTes
final Facet facet = facetedMethod.getFacet(ImmutableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof ImmutableFacetAnnotation);
- final ImmutableFacetAnnotation immutableFacetAnnotation = (ImmutableFacetAnnotation) facet;
+ assertTrue(facet instanceof ImmutableFacetForImmutableAnnotation);
+ final ImmutableFacetForImmutableAnnotation immutableFacetAnnotation = (ImmutableFacetForImmutableAnnotation) facet;
assertEquals(When.UNTIL_PERSISTED, immutableFacetAnnotation.when());
assertNoMethodsRemoved();
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
index d09671d..865a789 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/membergroups/annotprop/MemberGroupLayoutFacetFactoryTest.java
@@ -29,10 +29,6 @@ import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.object.membergroups.MemberGroupLayoutFacet;
-import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetAnnotation;
-import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFactory;
-import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupLayoutFacetFallback;
-import org.apache.isis.core.metamodel.facets.object.membergroups.annotprop.MemberGroupsFacetAnnotation;
public class MemberGroupLayoutFacetFactoryTest extends AbstractFacetFactoryTest {
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdFacetDerivedFromClassNameFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdFacetDerivedFromClassNameFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdFacetDerivedFromClassNameFactoryTest.java
index 1e7b8df..177a8ee 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdFacetDerivedFromClassNameFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectSpecIdFacetDerivedFromClassNameFactoryTest.java
@@ -48,9 +48,9 @@ public class ObjectSpecIdFacetDerivedFromClassNameFactoryTest extends AbstractFa
public void installsFacet_passedThroughClassSubstitutor() {
expectNoMethodsRemoved();
- facetFactory.process(new ProcessClassContext(CustomerAsProxiedByDataNucleus.class, mockMethodRemover, facetHolderImpl));
+ facetFactory.process(new ProcessClassContext(CustomerAsProxiedByDataNucleus.class, mockMethodRemover, facetHolder));
- final ObjectSpecIdFacet facet = facetHolderImpl.getFacet(ObjectSpecIdFacet.class);
+ final ObjectSpecIdFacet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof ObjectSpecIdFacetDerivedFromClassName, is(true));
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
index 0610bab..53380db 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/objectspecid/ObjectTypeAnnotationFacetFactoryTest.java
@@ -52,9 +52,9 @@ public class ObjectTypeAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
expectNoMethodsRemoved();
- facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolderImpl));
+ facetFactory.process(new ProcessClassContext(Customer.class, null, mockMethodRemover, facetHolder));
- final ObjectSpecIdFacet facet = facetHolderImpl.getFacet(ObjectSpecIdFacet.class);
+ final ObjectSpecIdFacet facet = facetHolder.getFacet(ObjectSpecIdFacet.class);
assertThat(facet, is(not(nullValue())));
assertThat(facet instanceof ObjectSpecIdFacetAnnotation, is(true));
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactoryTest.java
index fe02bdb..f946ef4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/recreatable/RecreatableObjectFacetFactoryTest.java
@@ -23,6 +23,7 @@ import org.apache.isis.applib.ViewModel;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessClassContext;
+import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
public class RecreatableObjectFacetFactoryTest extends AbstractFacetFactoryTest {
@@ -57,7 +58,7 @@ public class RecreatableObjectFacetFactoryTest extends AbstractFacetFactoryTest
facetFactory.process(new ProcessClassContext(Customer.class, methodRemover, facetedMethod));
- final Facet facet = facetedMethod.getFacet(RecreatableObjectFacet.class);
+ final Facet facet = facetedMethod.getFacet(ViewModelFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof RecreatableObjectFacetForViewModelInterface);
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/metamodel/src/test/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/GivenAuditableAnnotationFacetFactoryTest.java
----------------------------------------------------------------------
diff --git a/core/metamodel/src/test/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/GivenAuditableAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/GivenAuditableAnnotationFacetFactoryTest.java
index 74f4932..790e7e4 100644
--- a/core/metamodel/src/test/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/GivenAuditableAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/objectstore/jdo/metamodel/facets/object/auditable/GivenAuditableAnnotationFacetFactoryTest.java
@@ -18,19 +18,17 @@
*/
package org.apache.isis.objectstore.jdo.metamodel.facets.object.auditable;
-import java.util.List;
-
-import javax.jdo.annotations.PersistenceCapable;
-
import junit.framework.Assert;
+import java.util.List;
+import javax.jdo.annotations.PersistenceCapable;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facetapi.FeatureType;
+import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory;
import org.apache.isis.core.metamodel.facets.object.audit.AuditableFacet;
-import org.apache.isis.core.metamodel.facets.object.audit.annotation.AuditableFacetAuditedAnnotation;
+import org.apache.isis.core.metamodel.facets.object.audit.annotation.AuditableFacetForAuditedAnnotation;
import org.apache.isis.core.objectstore.jdo.applib.annotations.Auditable;
-import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
public class GivenAuditableAnnotationFacetFactoryTest extends
@@ -71,7 +69,7 @@ public class GivenAuditableAnnotationFacetFactoryTest extends
final Facet facet = facetHolder.getFacet(AuditableFacet.class);
assertNotNull(facet);
- assertTrue(facet instanceof AuditableFacetAuditedAnnotation);
+ assertTrue(facet instanceof AuditableFacetForAuditedAnnotation);
}
public void testIfNoAuditableAnnotationThenNoFacet() {
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreatorDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreatorDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreatorDefault.java
index 6097375..ab07a0d 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreatorDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/adaptermanager/PojoRecreatorDefault.java
@@ -21,7 +21,7 @@ package org.apache.isis.core.runtime.persistence.adaptermanager;
import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
import org.apache.isis.core.metamodel.adapter.oid.RootOid;
import org.apache.isis.core.metamodel.adapter.oid.TypedOid;
-import org.apache.isis.core.metamodel.facets.object.recreatable.RecreatableObjectFacet;
+import org.apache.isis.core.metamodel.facets.object.viewmodel.ViewModelFacet;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.SpecificationLoaderSpi;
import org.apache.isis.core.runtime.system.context.IsisContext;
@@ -34,7 +34,7 @@ class PojoRecreatorDefault implements PojoRecreator {
if(oid.isViewModel()) {
// initialize the view model pojo from the oid's identifier
- final RecreatableObjectFacet facet = spec.getFacet(RecreatableObjectFacet.class);
+ final ViewModelFacet facet = spec.getFacet(ViewModelFacet.class);
if(facet == null) {
throw new IllegalArgumentException("spec does not have RecreatableObjectFacet; " + oid.toString() + "; spec is " + spec.getFullIdentifier());
}
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
index caa5e28..8104359 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/persistence/objectstore/transaction/PublishingServiceWithDefaultPayloadFactories.java
@@ -38,8 +38,8 @@ import org.apache.isis.core.runtime.system.context.IsisContext;
import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
/**
- * Wrapper around {@link PublishingService} that also includes the
- * {@link PublishedObject.PayloadFactory event} {@link PublishedAction.PayloadFactory canonicalizers}.
+ * Wrapper around {@link PublishingService} that also includes the payload factories for
+ * {@link PublishedObject.PayloadFactory published object}s and {@link PublishedAction.PayloadFactory published action}s.
*/
public class PublishingServiceWithDefaultPayloadFactories {
http://git-wip-us.apache.org/repos/asf/isis/blob/3156fe64/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
index 32890a6..9570515 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/eventbus/EventBusServiceDefault.java
@@ -23,7 +23,6 @@ import com.google.common.eventbus.SubscriberExceptionHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.isis.applib.services.eventbus.AbstractDomainEvent;
-import org.apache.isis.applib.services.eventbus.AbstractInteractionEvent;
import org.apache.isis.applib.services.eventbus.EventBusService;
import org.apache.isis.core.commons.exceptions.IsisApplicationException;
import org.apache.isis.core.metamodel.facets.Annotations;
@@ -81,14 +80,14 @@ public class EventBusServiceDefault extends EventBusService {
@Override
public void handleException(Throwable exception, SubscriberExceptionContext context) {
Object event = context.getEvent();
- if(!(event instanceof AbstractInteractionEvent)) {
+ if(!(event instanceof AbstractDomainEvent)) {
if(LOG.isDebugEnabled()) {
- LOG.debug("Ignoring exception '%s' (%s), not a subclass of AbstractInteractionEvent", exception.getMessage(), exception.getClass().getName());
+ LOG.debug("Ignoring exception '%s' (%s), not a subclass of AbstractDomainEvent", exception.getMessage(), exception.getClass().getName());
}
return;
}
- final AbstractInteractionEvent<?> interactionEvent = (AbstractInteractionEvent<?>) event;
- final AbstractDomainEvent.Phase phase = interactionEvent.getPhase();
+ final AbstractDomainEvent<?> interactionEvent = (AbstractDomainEvent<?>) event;
+ final AbstractDomainEvent.Phase phase = interactionEvent.getEventPhase();
switch (phase) {
case HIDE:
LOG.warn("Exception thrown during HIDE phase, to be safe will veto (hide) the interaction event, msg='{}', class='{}'", exception.getMessage(), exception.getClass().getName());