You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/04/02 10:46:42 UTC
[isis] branch 2033-IoC_spring updated: ISIS-2033: further fixes
metamodel tests
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch 2033-IoC_spring
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/2033-IoC_spring by this push:
new 5d71204 ISIS-2033: further fixes metamodel tests
5d71204 is described below
commit 5d7120409ef529d5c0745d8eb715ea815db8267c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Apr 2 12:46:35 2019 +0200
ISIS-2033: further fixes metamodel tests
Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
.../facets/AbstractFacetFactoryJUnit4TestCase.java | 56 +-
.../metamodel/facets/AbstractFacetFactoryTest.java | 24 +-
.../actions/ActionMethodsFacetFactoryTest.java | 3 +-
.../action/ActionAnnotationFacetFactoryTest.java | 1066 +-------------------
...notationFacetFactoryTest_ActionInvocation.java} | 8 +-
.../ActionAnnotationFacetFactoryTest_Command.java | 296 ++++++
.../ActionAnnotationFacetFactoryTest_Hidden.java | 45 +
...ctionAnnotationFacetFactoryTest_Invocation.java | 183 ++++
...ctionAnnotationFacetFactoryTest_Publishing.java | 283 ++++++
...ctionAnnotationFacetFactoryTest_RestrictTo.java | 82 ++
...ActionAnnotationFacetFactoryTest_Semantics.java | 84 ++
.../ActionAnnotationFacetFactoryTest_TypeOf.java | 150 +++
.../CollectionFieldMethodsFacetFactoryTest.java | 3 +-
.../CollectionAnnotationFacetFactoryTest.java | 3 +-
...stedAnnotationOnCollectionFacetFactoryTest.java | 3 +-
.../ObjectDisabledMethodFacetFactoryTest.java | 3 +-
.../DomainObjectAnnotationFacetFactoryTest.java | 15 +-
.../DomainObjectLayoutFactoryTest.java | 6 +-
.../title/TitleFacetViaMethodsFactoryTest.java | 3 +-
.../ParameterAnnotationFacetFactoryTest.java | 3 +-
...lableAnnotationOnParameterFacetFactoryTest.java | 3 +-
...RegExAnnotationOnParameterFacetFactoryTest.java | 3 +-
.../PropertyMethodsFacetFactoryTest.java | 3 +-
.../MandatoryAnnotationFacetFactoryTest.java | 3 +-
...sistedAnnotationOnPropertyFacetFactoryTest.java | 3 +-
.../PropertyAnnotationFacetFactoryTest.java | 3 +-
...llableAnnotationOnPropertyFacetFactoryTest.java | 3 +-
.../RegExAnnotationOnPropertyFacetFactoryTest.java | 3 +-
.../BigDecimalValueSemanticsProviderTest.java | 3 +-
.../value/BigIntValueSemanticsProviderTest.java | 3 +-
.../ServiceInjectorBuilder_forTesting.java | 1 +
.../ApplicationFeatureRepositoryDefaultTest.java | 3 +-
32 files changed, 1228 insertions(+), 1125 deletions(-)
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 6b1cf1b..5219611 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
@@ -35,6 +35,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.services.events.MetamodelEventService;
import org.apache.isis.core.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.spec.feature.OneToManyAssociation;
@@ -55,41 +56,28 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
@Rule
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
- @Mock
- protected SpecificationLoader mockSpecificationLoader;
- @Mock
- protected ObjectAdapterService mockPersistenceSessionServiceInternal;
- @Mock
- protected MethodRemover mockMethodRemover;
- @Mock
- protected FacetHolder mockFacetHolder;
- @Mock
- protected ServiceInjector mockServiceInjector;
- @Mock
- protected ServiceRegistry mockServiceRegistry;
+ @Mock protected SpecificationLoader mockSpecificationLoader;
+ @Mock protected ObjectAdapterService mockPersistenceSessionServiceInternal;
+ @Mock protected MethodRemover mockMethodRemover;
+ @Mock protected FacetHolder mockFacetHolder;
+ @Mock protected ServiceInjector mockServiceInjector;
+ @Mock protected ServiceRegistry mockServiceRegistry;
- @Mock
- protected TranslationService mockTranslationService;
+ @Mock protected TranslationService mockTranslationService;
- @Mock
- protected AuthenticationSessionProvider mockAuthenticationSessionProvider;
+ @Mock protected AuthenticationSessionProvider mockAuthenticationSessionProvider;
protected IdentifiedHolder facetHolder;
- @Mock
- protected ObjectSpecification mockOnType;
- @Mock
- protected ObjectSpecification mockObjSpec;
- @Mock
- protected OneToOneAssociation mockOneToOneAssociation;
- @Mock
- protected OneToManyAssociation mockOneToManyAssociation;
- @Mock
- protected OneToOneActionParameter mockOneToOneActionParameter;
-// @Mock
-// protected EventBusService mockEventBusService;
- @Mock
- protected ObjectAdapterProvider mockObjectAdapterProvider;
+ @Mock protected ObjectSpecification mockOnType;
+ @Mock protected ObjectSpecification mockObjSpec;
+ @Mock protected OneToOneAssociation mockOneToOneAssociation;
+ @Mock protected OneToManyAssociation mockOneToManyAssociation;
+ @Mock protected OneToOneActionParameter mockOneToOneActionParameter;
+// @Mock protected EventBusService mockEventBusService;
+ @Mock protected ObjectAdapterProvider mockObjectAdapterProvider;
+
+ @Mock protected MetamodelEventService mockMetamodelEventService;
protected FacetedMethod facetedMethod;
protected FacetedMethodParameter facetedMethodParameter;
@@ -113,9 +101,10 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
// PRODUCTION
MetaModelContext.preset(MetaModelContext.builder()
- .specificationLoader(mockSpecificationLoader)
+ .configuration(_Config.getConfiguration())
+ .specificationLoader(mockSpecificationLoader)
.serviceInjector(mockServiceInjector)
- .configuration(_Config.getConfiguration())
+ .serviceRegistry(mockServiceRegistry)
.build());
context.checking(new Expectations() {{
@@ -126,6 +115,9 @@ public abstract class AbstractFacetFactoryJUnit4TestCase {
allowing(mockServiceRegistry).lookupService(AuthenticationSessionProvider.class);
will(returnValue(Optional.of(mockAuthenticationSessionProvider)));
+ allowing(mockServiceRegistry).lookupServiceElseFail(MetamodelEventService.class);
+ will(returnValue(mockMetamodelEventService));
+
// allowing(mockServicesInjector).lookupServiceElseFail(EventBusService.class);
// will(returnValue(mockEventBusService));
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 1b83e3b..1051889 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
@@ -23,18 +23,22 @@ import java.lang.reflect.Method;
import java.util.List;
import org.jmock.Expectations;
+import org.jmock.auto.Mock;
import org.junit.Rule;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.i18n.TranslationService;
import org.apache.isis.applib.services.inject.ServiceInjector;
+import org.apache.isis.applib.services.registry.ServiceRegistry;
import org.apache.isis.commons.internal.context._Context;
+import org.apache.isis.config.internal._Config;
import org.apache.isis.core.metamodel.MetaModelContext;
import org.apache.isis.core.metamodel.adapter.ObjectAdapterProvider;
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.services.events.MetamodelEventService;
import org.apache.isis.core.metamodel.services.persistsession.ObjectAdapterService;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
@@ -62,7 +66,10 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
}
}
+ @Mock protected MetamodelEventService mockMetamodelEventService;
+
protected ObjectAdapterProvider mockObjectAdapterProvider;
+ protected ServiceRegistry mockServiceRegistry;
protected ServiceInjector mockServiceInjector;
protected TranslationService mockTranslationService;
protected AuthenticationSessionProvider mockAuthenticationSessionProvider;
@@ -97,11 +104,6 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
_Context.clear();
- MetaModelContext.preset(MetaModelContext.builder()
- .specificationLoader(mockSpecificationLoader)
- .serviceInjector(mockServiceInjector)
- .build());
-
// PRODUCTION
facetHolder = new IdentifiedHolderImpl(
@@ -122,6 +124,7 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
mockSpecificationLoader = context.mock(SpecificationLoader.class);
+ mockServiceRegistry = context.mock(ServiceRegistry.class);
mockServiceInjector = context.mock(ServiceInjector.class);
mockObjectAdapterProvider = context.mock(ObjectAdapterProvider.class);
@@ -129,7 +132,18 @@ public abstract class AbstractFacetFactoryTest extends TestCase {
allowing(mockAuthenticationSessionProvider).getAuthenticationSession();
will(returnValue(mockAuthenticationSession));
+
+ allowing(mockServiceRegistry).lookupServiceElseFail(MetamodelEventService.class);
+ will(returnValue(mockMetamodelEventService));
+
}});
+
+ MetaModelContext.preset(MetaModelContext.builder()
+ .configuration(_Config.getConfiguration())
+ .specificationLoader(mockSpecificationLoader)
+ .serviceRegistry(mockServiceRegistry)
+ .serviceInjector(mockServiceInjector)
+ .build());
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
index 33e196c..cb8f475 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/ActionMethodsFacetFactoryTest.java
@@ -70,7 +70,8 @@ public class ActionMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
private final ObjectSpecification stringSpec = new ObjectSpecificationStub("java.lang.String");
private final ObjectSpecification customerSpec = new ObjectSpecificationStub("Customer");
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
// PRODUCTION
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 c95ed5c..bf3ba1c 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
@@ -19,73 +19,27 @@
package org.apache.isis.core.metamodel.facets.actions.action;
-import static org.apache.isis.core.commons.matchers.IsisMatchers.classEqualTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-
import java.lang.reflect.Method;
-import java.util.Collection;
import java.util.UUID;
-import org.apache.isis.applib.annotation.Action;
-import org.apache.isis.applib.annotation.CommandExecuteIn;
-import org.apache.isis.applib.annotation.CommandPersistence;
-import org.apache.isis.applib.annotation.CommandReification;
-import org.apache.isis.applib.annotation.SemanticsOf;
-import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.applib.events.domain.ActionDomainEvent;
import org.apache.isis.applib.services.HasUniqueId;
import org.apache.isis.config.internal._Config;
-import org.apache.isis.core.metamodel.MetaModelContext;
-import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJUnit4TestCase;
-import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
-import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
-import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotationAsConfigured;
-import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetFromConfiguration;
-import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetAbstract;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault;
-import org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetFromConfiguration;
-import org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetForActionAnnotation;
-import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
-import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
-import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
-import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
-import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
import org.apache.isis.core.metamodel.facets.object.domainobject.domainevents.ActionDomainEventDefaultFacetForDomainObjectAnnotation;
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.security.authentication.AuthenticationSessionProvider;
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;
-@SuppressWarnings({"hiding", "serial"})
public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4TestCase {
ActionAnnotationFacetFactory facetFactory;
Method actionMethod;
- @Mock
- ObjectSpecification mockTypeSpec;
- @Mock
- ObjectSpecification mockReturnTypeSpec;
+ @Mock ObjectSpecification mockTypeSpec;
+ @Mock ObjectSpecification mockReturnTypeSpec;
void expectRemoveMethod(final Method actionMethod) {
context.checking(new Expectations() {{
@@ -124,7 +78,8 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
actionMethod = findMethod(Customer.class, "someAction");
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
}
@@ -146,1019 +101,6 @@ public class ActionAnnotationFacetFactoryTest extends AbstractFacetFactoryJUnit4
}
- public static class Invocation extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void withPostsActionInvokedEvent() {
-
- class Customer {
-
- class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> { }
-
- @Action(domainEvent = SomeActionInvokedDomainEvent.class)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // expect
- allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
- expectRemoveMethod(actionMethod);
-
- _Config.put("isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", true);
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
-
- // then
- final ActionDomainEventFacet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
- Assert.assertNotNull(domainEventFacet);
- Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetAbstract);
- final ActionDomainEventFacetAbstract domainEventFacetImpl = (ActionDomainEventFacetAbstract) domainEventFacet;
- assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
-
- final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
- Assert.assertNotNull(invocationFacet);
- Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
- final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl = (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
- assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
- }
-
- @Test
- public void withActionInteractionEvent() {
-
- class Customer {
-
- class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> { }
-
- @Action(domainEvent = SomeActionInvokedDomainEvent.class)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // expect
- allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
- expectRemoveMethod(actionMethod);
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
-
- // then
- final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
- Assert.assertNotNull(domainEventFacet);
- Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetForActionAnnotation);
- final ActionDomainEventFacetForActionAnnotation domainEventFacetImpl =
- (ActionDomainEventFacetForActionAnnotation) domainEventFacet;
- assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
-
- final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
- Assert.assertNotNull(invocationFacet);
-
- Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
- final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl =
- (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
- assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
- }
-
- @Test
- public void withActionDomainEvent() {
-
- class Customer {
-
- class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> {
- }
-
- @Action(domainEvent= SomeActionInvokedDomainEvent.class)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // expect
- allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
- expectRemoveMethod(actionMethod);
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
-
- // then
- final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
- Assert.assertNotNull(domainEventFacet);
- Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetForActionAnnotation);
- final ActionDomainEventFacetForActionAnnotation domainEventFacetImpl = (ActionDomainEventFacetForActionAnnotation) domainEventFacet;
- assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
-
- final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
- Assert.assertNotNull(invocationFacet);
- Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
- final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl = (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
- assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
- }
-
- @Test
- public void withDefaultEvent() {
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // expect
- allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
- expectRemoveMethod(actionMethod);
-
- _Config.put("isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", true);
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processInvocation(processMethodContext);
-
- // then
- final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
- Assert.assertNotNull(domainEventFacet);
- Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetDefault);
- final ActionDomainEventFacetDefault domainEventFacetImpl = (ActionDomainEventFacetDefault) domainEventFacet;
- assertThat(domainEventFacetImpl.getEventType(), classEqualTo(ActionDomainEvent.Default.class));
-
- final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
- Assert.assertNotNull(invocationFacet);
- Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromDefault);
- final ActionInvocationFacetForDomainEventFromDefault invocationFacetImpl = (ActionInvocationFacetForDomainEventFromDefault) invocationFacet;
- assertThat(invocationFacetImpl.getEventType(), classEqualTo(ActionDomainEvent.Default.class));
- }
- }
-
- public static class Hidden extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void withAnnotation() {
-
- class Customer {
- @Action(hidden = Where.REFERENCES_PARENT)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processHidden(processMethodContext);
-
- // then
- final HiddenFacet hiddenFacet = facetedMethod.getFacet(HiddenFacet.class);
- Assert.assertNotNull(hiddenFacet);
- assertThat(hiddenFacet.where(), is(Where.REFERENCES_PARENT));
-
- final Facet hiddenFacetImpl = facetedMethod.getFacet(HiddenFacetForActionAnnotation.class);
- Assert.assertNotNull(hiddenFacetImpl);
- Assert.assertTrue(hiddenFacet == hiddenFacetImpl);
- }
-
- }
-
- public static class RestrictTo extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void whenRestrictedToPrototyping() {
-
- class Customer {
- @Action(restrictTo = org.apache.isis.applib.annotation.RestrictTo.PROTOTYPING)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processRestrictTo(processMethodContext);
-
- // then
- final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
- Assert.assertNotNull(facet);
- }
-
- @Test
- public void whenRestrictedToNoRestriction() {
-
- class Customer {
- @Action(restrictTo = org.apache.isis.applib.annotation.RestrictTo.NO_RESTRICTIONS)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processRestrictTo(processMethodContext);
-
- // then
- final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void whenNotPresent() {
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(
- cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processRestrictTo(processMethodContext);
-
- // then
- final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
- assertNull(facet);
- }
-
- }
-
- public static class Semantics extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void whenSafe() {
-
- class Customer {
- @Action(semantics = SemanticsOf.SAFE)
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processSemantics(processMethodContext);
-
- // then
- final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
- Assert.assertNotNull(facet);
- assertThat(facet.value(), is(SemanticsOf.SAFE));
- }
-
- @Test
- public void whenNotSpecified() {
-
- class Customer {
- @Action()
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processSemantics(processMethodContext);
-
- // then
- final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
- Assert.assertNotNull(facet);
- assertThat(facet.value(), is(SemanticsOf.NON_IDEMPOTENT));
- }
-
- @Test
- public void whenNoAnnotation() {
-
- class Customer {
- @SuppressWarnings("unused")
- public void someAction() {
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processSemantics(processMethodContext);
-
- // then
- final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
- Assert.assertNotNull(facet);
- assertThat(facet.value(), is(SemanticsOf.NON_IDEMPOTENT));
- }
-
- }
-
- public static class Command extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void givenHasTransactionId_thenIgnored() {
- // given
- final Method actionMethod = findMethod(SomeTransactionalId.class, "someAction");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(SomeTransactionalId.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNull(facet);
-
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
-
- // given
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
-
- // given
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNotNull(facet);
- assert(facet instanceof CommandFacetFromConfiguration);
- final CommandFacetFromConfiguration facetImpl = (CommandFacetFromConfiguration) facet;
- assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.PERSISTED));
- assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.FOREGROUND));
- }
-
- @Test(expected=IllegalStateException.class)
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
-
- // given
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToNone_thenNone() {
-
- // given
- allowingCommandConfigurationToReturn("none");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToAll_thenFacetAdded() {
-
- // given
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- allowingCommandConfigurationToReturn("all");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNotNull(facet);
- assert(facet instanceof CommandFacetFromConfiguration);
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
-
- class Customer {
- @Action(
- command = CommandReification.AS_CONFIGURED
- )
- public void someAction() {
- }
- }
-
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
-
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
-
- // given
- class Customer {
- @Action(
- command = CommandReification.AS_CONFIGURED,
- commandPersistence = CommandPersistence.IF_HINTED,
- commandExecuteIn = CommandExecuteIn.BACKGROUND
- )
- public void someAction() {
- }
- }
-
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNotNull(facet);
- final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
- assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
- assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
- }
-
- @Test(expected=IllegalStateException.class)
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
-
- class Customer {
- @Action(
- command = CommandReification.AS_CONFIGURED
- )
- public void someAction() {
- }
- }
-
- allowingCommandConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToNone_thenNone() {
-
- class Customer {
- @Action(
- command = CommandReification.AS_CONFIGURED
- )
- public void someAction() {
- }
- }
-
- allowingCommandConfigurationToReturn("none");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToAll_thenFacetAdded() {
-
- // given
- class Customer {
- @Action(
- command = CommandReification.AS_CONFIGURED,
- commandPersistence = CommandPersistence.IF_HINTED,
- commandExecuteIn = CommandExecuteIn.BACKGROUND
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- allowingCommandConfigurationToReturn("all");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNotNull(facet);
- final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
- assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
- assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
- }
-
- @Test
- public void given_enabled_irrespectiveOfConfiguration_thenFacetAdded() {
-
- // given
- class Customer {
- @Action(
- command = CommandReification.ENABLED
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- // even though configuration is disabled
- allowingCommandConfigurationToReturn("none");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof CommandFacetForActionAnnotation);
- }
-
- @Test
- public void given_disabled_irrespectiveOfConfiguration_thenNone() {
-
- // given
- class Customer {
- @Action(
- command = CommandReification.DISABLED
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- // even though configuration is disabled
- allowingCommandConfigurationToReturn("none");
-
- // when
- facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(CommandFacet.class);
- assertNull(facet);
- }
-
-
- }
-
- public static class Publishing extends ActionAnnotationFacetFactoryTest {
-
- @Test
- public void givenHasTransactionId_thenIgnored() {
-
- final Method actionMethod = findMethod(SomeTransactionalId.class, "someAction");
-
- facetFactory.processPublishing(new ProcessMethodContext(SomeTransactionalId.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
-
- expectNoMethodsRemoved();
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
-
- // given
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
-
- // given
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNotNull(facet);
- final PublishedActionFacetFromConfiguration facetImpl = (PublishedActionFacetFromConfiguration) facet;
- }
-
- @Test(expected=IllegalStateException.class)
- public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
-
- // given
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToNone_thenNone() {
-
- // given
- allowingPublishingConfigurationToReturn("none");
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
-
- expectNoMethodsRemoved();
-
- }
-
- @Test
- public void given_noAnnotation_and_configurationSetToAll_thenFacetAdded() {
-
- // given
- final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
-
- allowingPublishingConfigurationToReturn("all");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
- actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof PublishedActionFacetFromConfiguration);
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
-
- class Customer {
- @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
- public void someAction() {
- }
- }
-
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
-
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
-
- expectNoMethodsRemoved();
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
-
- // given
- class Customer {
- @Action(
- publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED
- )
- public void someAction() {
- }
- }
-
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNotNull(facet);
- final PublishedActionFacetForActionAnnotation facetImpl = (PublishedActionFacetForActionAnnotation) facet;
-
- expectNoMethodsRemoved();
- }
-
- @Test(expected=IllegalStateException.class)
- public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
-
- class Customer {
- @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
- public void someAction() {
- }
- }
-
- allowingPublishingConfigurationToReturn("ignoreQueryOnly");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToNone_thenNone() {
-
- class Customer {
- @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
- public void someAction() {
- }
- }
-
- allowingPublishingConfigurationToReturn("none");
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
-
- expectNoMethodsRemoved();
-
- }
-
- @Test
- public void given_asConfigured_and_configurationSetToAll_thenFacetAdded() {
-
- // given
- class Customer {
- @Action(
- publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- allowingPublishingConfigurationToReturn("all");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof PublishedActionFacetForActionAnnotation);
-
- expectNoMethodsRemoved();
- }
-
- @Test
- public void given_enabled_irrespectiveOfConfiguration_thenFacetAdded() {
-
- // given
- class Customer {
- @Action(
- publishing = org.apache.isis.applib.annotation.Publishing.ENABLED
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- // even though configuration is disabled
- allowingPublishingConfigurationToReturn("none");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNotNull(facet);
- assertTrue(facet instanceof PublishedActionFacetForActionAnnotation);
- }
-
- @Test
- public void given_disabled_irrespectiveOfConfiguration_thenNone() {
-
- // given
- class Customer {
- @Action(
- publishing = org.apache.isis.applib.annotation.Publishing.DISABLED
- )
- public void someAction() {
- }
- }
- final Method actionMethod = findMethod(Customer.class, "someAction");
-
- // even though configuration is disabled
- allowingPublishingConfigurationToReturn("none");
-
- // when
- facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
-
- // then
- final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
- assertNull(facet);
- }
-
- }
-
- public static class TypeOf extends ActionAnnotationFacetFactoryTest {
-
-
- @Test
- public void whenDeprecatedTypeOfAnnotationOnActionNotReturningCollection() {
-
- class Customer {
- @SuppressWarnings("unused")
- public Customer someAction() {
- return null;
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processTypeOf(processMethodContext);
-
- // then
- final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
- Assert.assertNull(facet);
- }
-
- @Test
- public void whenActionAnnotationOnActionReturningCollection() {
-
- class Order {
- }
- class Customer {
- @SuppressWarnings("rawtypes")
- @Action(typeOf = Order.class)
- public Collection someAction() {
- return null;
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processTypeOf(processMethodContext);
-
- // then
- final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
- Assert.assertNotNull(facet);
- Assert.assertTrue(facet instanceof TypeOfFacetForActionAnnotation);
- assertThat(facet.value(), classEqualTo(Order.class));
- }
-
- @Test
- public void whenActionAnnotationOnActionNotReturningCollection() {
-
- class Order {
- }
- class Customer {
- @Action(typeOf = Order.class)
- public Customer someAction() {
- return null;
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processTypeOf(processMethodContext);
-
- // then
- final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
- Assert.assertNull(facet);
- }
-
- @Test
- public void whenInferFromType() {
-
- class Order {
- }
- class Customer {
- @SuppressWarnings("unused")
- public Order[] someAction() {
- return null;
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processTypeOf(processMethodContext);
-
- // then
- final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
- Assert.assertNotNull(facet);
- Assert.assertTrue(facet instanceof TypeOfFacetInferredFromArray);
- assertThat(facet.value(), classEqualTo(Order.class));
- }
-
- @Test
- public void whenInferFromGenerics() {
-
- class Order {
- }
- class Customer {
- @SuppressWarnings("unused")
- public Collection<Order> someAction() {
- return null;
- }
- }
-
- // given
- final Class<?> cls = Customer.class;
- actionMethod = findMethod(cls, "someAction");
-
- // when
- final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
- facetFactory.processTypeOf(processMethodContext);
-
- // then
- final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
- Assert.assertNotNull(facet);
- Assert.assertTrue(facet instanceof TypeOfFacetInferredFromGenerics);
- assertThat(facet.value(), classEqualTo(Order.class));
- }
-
- }
-
void allowingCommandConfigurationToReturn(final String value) {
_Config.put("isis.services.command.actions", value);
}
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
similarity index 97%
rename from core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_actionInvocation.java
rename to core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_ActionInvocation.java
index d4ac3d7..464284b 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
@@ -21,6 +21,7 @@ package org.apache.isis.core.metamodel.facets.actions.action;
import java.lang.reflect.Method;
+import org.apache.isis.core.metamodel.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryTest;
import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
@@ -36,16 +37,21 @@ import org.apache.isis.core.metamodel.facets.param.choices.methodnum.ActionParam
import org.apache.isis.core.metamodel.spec.ObjectSpecification;
import org.apache.isis.core.metamodel.testspec.ObjectSpecificationStub;
-public class ActionAnnotationFacetFactoryTest_actionInvocation extends AbstractFacetFactoryTest {
+public class ActionAnnotationFacetFactoryTest_ActionInvocation extends AbstractFacetFactoryTest {
private final ObjectSpecification voidSpec = new ObjectSpecificationStub("VOID");
private final ObjectSpecification stringSpec = new ObjectSpecificationStub("java.lang.String");
private final ObjectSpecification customerSpec = new ObjectSpecificationStub("Customer");
private ActionAnnotationFacetFactory facetFactory;
+ @Override
public void setUp() throws Exception {
super.setUp();
this.facetFactory = new ActionAnnotationFacetFactory();
+
+ System.out.println("setup " + MetaModelContext.current().getSpecificationLoader());
+
+
}
public void testActionInvocationFacetIsInstalledAndMethodRemoved() {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Command.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Command.java
new file mode 100644
index 0000000..28e28b0
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Command.java
@@ -0,0 +1,296 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.CommandExecuteIn;
+import org.apache.isis.applib.annotation.CommandPersistence;
+import org.apache.isis.applib.annotation.CommandReification;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactoryTest.SomeTransactionalId;
+import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotation;
+import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetForActionAnnotationAsConfigured;
+import org.apache.isis.core.metamodel.facets.actions.action.command.CommandFacetFromConfiguration;
+import org.apache.isis.core.metamodel.facets.actions.command.CommandFacet;
+import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_Command extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void givenHasTransactionId_thenIgnored() {
+ // given
+ final Method actionMethod = findMethod(SomeTransactionalId.class, "someAction");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(SomeTransactionalId.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNull(facet);
+
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
+
+ // given
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
+
+ // given
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNotNull(facet);
+ assert(facet instanceof CommandFacetFromConfiguration);
+ final CommandFacetFromConfiguration facetImpl = (CommandFacetFromConfiguration) facet;
+ assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.PERSISTED));
+ assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.FOREGROUND));
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
+
+ // given
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToNone_thenNone() {
+
+ // given
+ allowingCommandConfigurationToReturn("none");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToAll_thenFacetAdded() {
+
+ // given
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ allowingCommandConfigurationToReturn("all");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNotNull(facet);
+ assert(facet instanceof CommandFacetFromConfiguration);
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
+
+ class Customer {
+ @Action(
+ command = CommandReification.AS_CONFIGURED
+ )
+ public void someAction() {
+ }
+ }
+
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
+
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ command = CommandReification.AS_CONFIGURED,
+ commandPersistence = CommandPersistence.IF_HINTED,
+ commandExecuteIn = CommandExecuteIn.BACKGROUND
+ )
+ public void someAction() {
+ }
+ }
+
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNotNull(facet);
+ final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
+ assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
+ assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
+
+ class Customer {
+ @Action(
+ command = CommandReification.AS_CONFIGURED
+ )
+ public void someAction() {
+ }
+ }
+
+ allowingCommandConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToNone_thenNone() {
+
+ class Customer {
+ @Action(
+ command = CommandReification.AS_CONFIGURED
+ )
+ public void someAction() {
+ }
+ }
+
+ allowingCommandConfigurationToReturn("none");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToAll_thenFacetAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ command = CommandReification.AS_CONFIGURED,
+ commandPersistence = CommandPersistence.IF_HINTED,
+ commandExecuteIn = CommandExecuteIn.BACKGROUND
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ allowingCommandConfigurationToReturn("all");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNotNull(facet);
+ final CommandFacetForActionAnnotationAsConfigured facetImpl = (CommandFacetForActionAnnotationAsConfigured) facet;
+ assertThat(facetImpl.persistence(), is(org.apache.isis.applib.annotation.CommandPersistence.IF_HINTED));
+ assertThat(facetImpl.executeIn(), is(org.apache.isis.applib.annotation.CommandExecuteIn.BACKGROUND));
+ }
+
+ @Test
+ public void given_enabled_irrespectiveOfConfiguration_thenFacetAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ command = CommandReification.ENABLED
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ // even though configuration is disabled
+ allowingCommandConfigurationToReturn("none");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof CommandFacetForActionAnnotation);
+ }
+
+ @Test
+ public void given_disabled_irrespectiveOfConfiguration_thenNone() {
+
+ // given
+ class Customer {
+ @Action(
+ command = CommandReification.DISABLED
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ // even though configuration is disabled
+ allowingCommandConfigurationToReturn("none");
+
+ // when
+ facetFactory.processCommand(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(CommandFacet.class);
+ assertNull(facet);
+ }
+
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Hidden.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Hidden.java
new file mode 100644
index 0000000..ff00a99
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Hidden.java
@@ -0,0 +1,45 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.Where;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.action.hidden.HiddenFacetForActionAnnotation;
+import org.apache.isis.core.metamodel.facets.all.hide.HiddenFacet;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_Hidden extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void withAnnotation() {
+
+ class Customer {
+ @Action(hidden = Where.REFERENCES_PARENT)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processHidden(processMethodContext);
+
+ // then
+ final HiddenFacet hiddenFacet = facetedMethod.getFacet(HiddenFacet.class);
+ Assert.assertNotNull(hiddenFacet);
+ assertThat(hiddenFacet.where(), is(Where.REFERENCES_PARENT));
+
+ final Facet hiddenFacetImpl = facetedMethod.getFacet(HiddenFacetForActionAnnotation.class);
+ Assert.assertNotNull(hiddenFacetImpl);
+ Assert.assertTrue(hiddenFacet == hiddenFacetImpl);
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Invocation.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Invocation.java
new file mode 100644
index 0000000..43e85ba
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Invocation.java
@@ -0,0 +1,183 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.apache.isis.core.commons.matchers.IsisMatchers.classEqualTo;
+import static org.junit.Assert.assertThat;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.events.domain.ActionDomainEvent;
+import org.apache.isis.config.internal._Config;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacet;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetAbstract;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetDefault;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionDomainEventFacetForActionAnnotation;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacet;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromActionAnnotation;
+import org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInvocationFacetForDomainEventFromDefault;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_Invocation extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void withPostsActionInvokedEvent() {
+
+ class Customer {
+
+ class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> { }
+
+ @Action(domainEvent = SomeActionInvokedDomainEvent.class)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // expect
+ allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
+ expectRemoveMethod(actionMethod);
+
+ _Config.put("isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", true);
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processInvocation(processMethodContext);
+
+ // then
+ final ActionDomainEventFacet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
+ Assert.assertNotNull(domainEventFacet);
+ Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetAbstract);
+ final ActionDomainEventFacetAbstract domainEventFacetImpl = (ActionDomainEventFacetAbstract) domainEventFacet;
+ assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+
+ final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
+ Assert.assertNotNull(invocationFacet);
+ Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
+ final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl = (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
+ assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+ }
+
+ @Test
+ public void withActionInteractionEvent() {
+
+ class Customer {
+
+ class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> { }
+
+ @Action(domainEvent = SomeActionInvokedDomainEvent.class)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // expect
+ allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
+ expectRemoveMethod(actionMethod);
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processInvocation(processMethodContext);
+
+ // then
+ final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
+ Assert.assertNotNull(domainEventFacet);
+ Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetForActionAnnotation);
+ final ActionDomainEventFacetForActionAnnotation domainEventFacetImpl =
+ (ActionDomainEventFacetForActionAnnotation) domainEventFacet;
+ assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+
+ final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
+ Assert.assertNotNull(invocationFacet);
+
+ Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
+ final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl =
+ (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
+ assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+ }
+
+ @Test
+ public void withActionDomainEvent() {
+
+ class Customer {
+
+ class SomeActionInvokedDomainEvent extends ActionDomainEvent<Customer> {
+ }
+
+ @Action(domainEvent= SomeActionInvokedDomainEvent.class)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // expect
+ allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
+ expectRemoveMethod(actionMethod);
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processInvocation(processMethodContext);
+
+ // then
+ final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
+ Assert.assertNotNull(domainEventFacet);
+ Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetForActionAnnotation);
+ final ActionDomainEventFacetForActionAnnotation domainEventFacetImpl = (ActionDomainEventFacetForActionAnnotation) domainEventFacet;
+ assertThat(domainEventFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+
+ final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
+ Assert.assertNotNull(invocationFacet);
+ Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromActionAnnotation);
+ final ActionInvocationFacetForDomainEventFromActionAnnotation invocationFacetImpl = (ActionInvocationFacetForDomainEventFromActionAnnotation) invocationFacet;
+ assertThat(invocationFacetImpl.getEventType(), classEqualTo(Customer.SomeActionInvokedDomainEvent.class));
+ }
+
+ @Test
+ public void withDefaultEvent() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // expect
+ allowingLoadSpecificationRequestsFor(cls, actionMethod.getReturnType());
+ expectRemoveMethod(actionMethod);
+
+ _Config.put("isis.reflector.facet.actionAnnotation.domainEvent.postForDefault", true);
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processInvocation(processMethodContext);
+
+ // then
+ final Facet domainEventFacet = facetedMethod.getFacet(ActionDomainEventFacet.class);
+ Assert.assertNotNull(domainEventFacet);
+ Assert.assertTrue(domainEventFacet instanceof ActionDomainEventFacetDefault);
+ final ActionDomainEventFacetDefault domainEventFacetImpl = (ActionDomainEventFacetDefault) domainEventFacet;
+ assertThat(domainEventFacetImpl.getEventType(), classEqualTo(ActionDomainEvent.Default.class));
+
+ final Facet invocationFacet = facetedMethod.getFacet(ActionInvocationFacet.class);
+ Assert.assertNotNull(invocationFacet);
+ Assert.assertTrue(invocationFacet instanceof ActionInvocationFacetForDomainEventFromDefault);
+ final ActionInvocationFacetForDomainEventFromDefault invocationFacetImpl = (ActionInvocationFacetForDomainEventFromDefault) invocationFacet;
+ assertThat(invocationFacetImpl.getEventType(), classEqualTo(ActionDomainEvent.Default.class));
+ }
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Publishing.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Publishing.java
new file mode 100644
index 0000000..c7eee75
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Publishing.java
@@ -0,0 +1,283 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.lang.reflect.Method;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.core.metamodel.facetapi.Facet;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.action.ActionAnnotationFacetFactoryTest.SomeTransactionalId;
+import org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetForActionAnnotation;
+import org.apache.isis.core.metamodel.facets.actions.action.publishing.PublishedActionFacetFromConfiguration;
+import org.apache.isis.core.metamodel.facets.actions.publish.PublishedActionFacet;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacetAbstract;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_Publishing extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void givenHasTransactionId_thenIgnored() {
+
+ final Method actionMethod = findMethod(SomeTransactionalId.class, "someAction");
+
+ facetFactory.processPublishing(new ProcessMethodContext(SomeTransactionalId.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
+
+ // given
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
+
+ // given
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNotNull(facet);
+ final PublishedActionFacetFromConfiguration facetImpl = (PublishedActionFacetFromConfiguration) facet;
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void given_noAnnotation_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
+
+ // given
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToNone_thenNone() {
+
+ // given
+ allowingPublishingConfigurationToReturn("none");
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+
+ }
+
+ @Test
+ public void given_noAnnotation_and_configurationSetToAll_thenFacetAdded() {
+
+ // given
+ final Method actionMethod = findMethod(ActionAnnotationFacetFactoryTest.Customer.class, "someAction");
+
+ allowingPublishingConfigurationToReturn("all");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(ActionAnnotationFacetFactoryTest.Customer.class, null,
+ actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PublishedActionFacetFromConfiguration);
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andSafeSemantics_thenNone() {
+
+ class Customer {
+ @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
+ public void someAction() {
+ }
+ }
+
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.SAFE, facetedMethod) {});
+
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNonSafeSemantics_thenAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED
+ )
+ public void someAction() {
+ }
+ }
+
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetedMethod.addFacet(new ActionSemanticsFacetAbstract(SemanticsOf.IDEMPOTENT, facetedMethod) {});
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNotNull(facet);
+ final PublishedActionFacetForActionAnnotation facetImpl = (PublishedActionFacetForActionAnnotation) facet;
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test(expected=IllegalStateException.class)
+ public void given_asConfigured_and_configurationSetToIgnoreQueryOnly_andNoSemantics_thenException() {
+
+ class Customer {
+ @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
+ public void someAction() {
+ }
+ }
+
+ allowingPublishingConfigurationToReturn("ignoreQueryOnly");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToNone_thenNone() {
+
+ class Customer {
+ @Action(publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED)
+ public void someAction() {
+ }
+ }
+
+ allowingPublishingConfigurationToReturn("none");
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+
+ expectNoMethodsRemoved();
+
+ }
+
+ @Test
+ public void given_asConfigured_and_configurationSetToAll_thenFacetAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ publishing = org.apache.isis.applib.annotation.Publishing.AS_CONFIGURED
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ allowingPublishingConfigurationToReturn("all");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PublishedActionFacetForActionAnnotation);
+
+ expectNoMethodsRemoved();
+ }
+
+ @Test
+ public void given_enabled_irrespectiveOfConfiguration_thenFacetAdded() {
+
+ // given
+ class Customer {
+ @Action(
+ publishing = org.apache.isis.applib.annotation.Publishing.ENABLED
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ // even though configuration is disabled
+ allowingPublishingConfigurationToReturn("none");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNotNull(facet);
+ assertTrue(facet instanceof PublishedActionFacetForActionAnnotation);
+ }
+
+ @Test
+ public void given_disabled_irrespectiveOfConfiguration_thenNone() {
+
+ // given
+ class Customer {
+ @Action(
+ publishing = org.apache.isis.applib.annotation.Publishing.DISABLED
+ )
+ public void someAction() {
+ }
+ }
+ final Method actionMethod = findMethod(Customer.class, "someAction");
+
+ // even though configuration is disabled
+ allowingPublishingConfigurationToReturn("none");
+
+ // when
+ facetFactory.processPublishing(new ProcessMethodContext(Customer.class, null, actionMethod, mockMethodRemover, facetedMethod));
+
+ // then
+ final Facet facet = facetedMethod.getFacet(PublishedActionFacet.class);
+ assertNull(facet);
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_RestrictTo.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_RestrictTo.java
new file mode 100644
index 0000000..4bef588
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_RestrictTo.java
@@ -0,0 +1,82 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.junit.Assert.assertNull;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.prototype.PrototypeFacet;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_RestrictTo extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void whenRestrictedToPrototyping() {
+
+ class Customer {
+ @Action(restrictTo = org.apache.isis.applib.annotation.RestrictTo.PROTOTYPING)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processRestrictTo(processMethodContext);
+
+ // then
+ final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
+ Assert.assertNotNull(facet);
+ }
+
+ @Test
+ public void whenRestrictedToNoRestriction() {
+
+ class Customer {
+ @Action(restrictTo = org.apache.isis.applib.annotation.RestrictTo.NO_RESTRICTIONS)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processRestrictTo(processMethodContext);
+
+ // then
+ final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
+ assertNull(facet);
+ }
+
+ @Test
+ public void whenNotPresent() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(
+ cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processRestrictTo(processMethodContext);
+
+ // then
+ final PrototypeFacet facet = facetedMethod.getFacet(PrototypeFacet.class);
+ assertNull(facet);
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Semantics.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Semantics.java
new file mode 100644
index 0000000..030ceee
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_Semantics.java
@@ -0,0 +1,84 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.applib.annotation.SemanticsOf;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actions.semantics.ActionSemanticsFacet;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_Semantics extends ActionAnnotationFacetFactoryTest {
+
+ @Test
+ public void whenSafe() {
+
+ class Customer {
+ @Action(semantics = SemanticsOf.SAFE)
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processSemantics(processMethodContext);
+
+ // then
+ final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
+ Assert.assertNotNull(facet);
+ assertThat(facet.value(), is(SemanticsOf.SAFE));
+ }
+
+ @Test
+ public void whenNotSpecified() {
+
+ class Customer {
+ @Action()
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processSemantics(processMethodContext);
+
+ // then
+ final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
+ Assert.assertNotNull(facet);
+ assertThat(facet.value(), is(SemanticsOf.NON_IDEMPOTENT));
+ }
+
+ @Test
+ public void whenNoAnnotation() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public void someAction() {
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processSemantics(processMethodContext);
+
+ // then
+ final ActionSemanticsFacet facet = facetedMethod.getFacet(ActionSemanticsFacet.class);
+ Assert.assertNotNull(facet);
+ assertThat(facet.value(), is(SemanticsOf.NON_IDEMPOTENT));
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_TypeOf.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_TypeOf.java
new file mode 100644
index 0000000..400c509
--- /dev/null
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/actions/action/ActionAnnotationFacetFactoryTest_TypeOf.java
@@ -0,0 +1,150 @@
+package org.apache.isis.core.metamodel.facets.actions.action;
+
+import static org.apache.isis.core.commons.matchers.IsisMatchers.classEqualTo;
+import static org.junit.Assert.assertThat;
+
+import java.util.Collection;
+
+import org.apache.isis.applib.annotation.Action;
+import org.apache.isis.core.metamodel.facets.FacetFactory.ProcessMethodContext;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacet;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromArray;
+import org.apache.isis.core.metamodel.facets.actcoll.typeof.TypeOfFacetInferredFromGenerics;
+import org.apache.isis.core.metamodel.facets.actions.action.typeof.TypeOfFacetForActionAnnotation;
+import org.junit.Assert;
+import org.junit.Test;
+
+public class ActionAnnotationFacetFactoryTest_TypeOf extends ActionAnnotationFacetFactoryTest {
+
+
+ @Test
+ public void whenDeprecatedTypeOfAnnotationOnActionNotReturningCollection() {
+
+ class Customer {
+ @SuppressWarnings("unused")
+ public Customer someAction() {
+ return null;
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processTypeOf(processMethodContext);
+
+ // then
+ final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
+ Assert.assertNull(facet);
+ }
+
+ @Test
+ public void whenActionAnnotationOnActionReturningCollection() {
+
+ class Order {
+ }
+ class Customer {
+ @SuppressWarnings("rawtypes")
+ @Action(typeOf = Order.class)
+ public Collection someAction() {
+ return null;
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processTypeOf(processMethodContext);
+
+ // then
+ final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof TypeOfFacetForActionAnnotation);
+ assertThat(facet.value(), classEqualTo(Order.class));
+ }
+
+ @Test
+ public void whenActionAnnotationOnActionNotReturningCollection() {
+
+ class Order {
+ }
+ class Customer {
+ @Action(typeOf = Order.class)
+ public Customer someAction() {
+ return null;
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processTypeOf(processMethodContext);
+
+ // then
+ final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
+ Assert.assertNull(facet);
+ }
+
+ @Test
+ public void whenInferFromType() {
+
+ class Order {
+ }
+ class Customer {
+ @SuppressWarnings("unused")
+ public Order[] someAction() {
+ return null;
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processTypeOf(processMethodContext);
+
+ // then
+ final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof TypeOfFacetInferredFromArray);
+ assertThat(facet.value(), classEqualTo(Order.class));
+ }
+
+ @Test
+ public void whenInferFromGenerics() {
+
+ class Order {
+ }
+ class Customer {
+ @SuppressWarnings("unused")
+ public Collection<Order> someAction() {
+ return null;
+ }
+ }
+
+ // given
+ final Class<?> cls = Customer.class;
+ actionMethod = findMethod(cls, "someAction");
+
+ // when
+ final ProcessMethodContext processMethodContext = new ProcessMethodContext(cls, null, actionMethod, mockMethodRemover, facetedMethod);
+ facetFactory.processTypeOf(processMethodContext);
+
+ // then
+ final TypeOfFacet facet = facetedMethod.getFacet(TypeOfFacet.class);
+ Assert.assertNotNull(facet);
+ Assert.assertTrue(facet instanceof TypeOfFacetInferredFromGenerics);
+ assertThat(facet.value(), classEqualTo(Order.class));
+ }
+
+}
\ No newline at end of file
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
index 1b9ebe9..af1d4ea 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/CollectionFieldMethodsFacetFactoryTest.java
@@ -67,7 +67,8 @@ public class CollectionFieldMethodsFacetFactoryTest extends AbstractFacetFactory
private ObjectSpecification mockSpecification;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
// expecting
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
index 5a20a48..4b8856a 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/CollectionAnnotationFacetFactoryTest.java
@@ -98,7 +98,8 @@ public class CollectionAnnotationFacetFactoryTest extends AbstractFacetFactoryJU
facetFactory = new CollectionAnnotationFacetFactory();
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
index cc6ad70..a9a5232 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/collections/collection/NotPersistedAnnotationOnCollectionFacetFactoryTest.java
@@ -33,7 +33,8 @@ public class NotPersistedAnnotationOnCollectionFacetFactoryTest extends Abstract
private CollectionAnnotationFacetFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new CollectionAnnotationFacetFactory();
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java
index f30ab2d..72ce102 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/disabled/ObjectDisabledMethodFacetFactoryTest.java
@@ -36,7 +36,8 @@ public class ObjectDisabledMethodFacetFactoryTest extends AbstractFacetFactoryTe
private DisabledObjectFacetViaMethodFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new DisabledObjectFacetViaMethodFactory();
}
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 346460e..8b00147 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
@@ -70,7 +70,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
facetFactory = new DomainObjectAnnotationFacetFactory();
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
}
@@ -418,7 +419,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
class CustomerWithDomainObjectButNoAutoCompleteRepository {
}
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
@@ -515,7 +517,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
class CustomerWithDomainObjectButNoBounded {
}
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
ignoringConfiguration();
@@ -704,7 +707,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
class CustomerWithDomainObjectButNoObjectType {
}
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
ignoringConfiguration();
@@ -777,7 +781,8 @@ public class DomainObjectAnnotationFacetFactoryTest extends AbstractFacetFactory
class CustomerWithDomainObjectButNoNature {
}
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
ignoringConfiguration();
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
index f294875..a1b3726 100644
--- 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
@@ -61,7 +61,8 @@ public class DomainObjectLayoutFactoryTest extends AbstractFacetFactoryJUnit4Tes
facetFactory = new DomainObjectLayoutFacetFactory();
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
super.tearDown();
@@ -198,7 +199,8 @@ public class DomainObjectLayoutFactoryTest extends AbstractFacetFactoryJUnit4Tes
_Config.clear();
}
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
_Config.clear();
super.setUp();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
index 487c52d..f46f4a2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodsFactoryTest.java
@@ -38,7 +38,8 @@ public class TitleFacetViaMethodsFactoryTest extends AbstractFacetFactoryTest {
private TitleFacetViaMethodsFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new TitleFacetViaMethodsFactory();
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 193a679..e079f85 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
@@ -79,7 +79,8 @@ public class ParameterAnnotationFacetFactoryTest extends AbstractFacetFactoryJUn
facetFactory = new ParameterAnnotationFacetFactory();
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterOptionalityOrNullableAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterOptionalityOrNullableAnnotationOnParameterFacetFactoryTest.java
index c3a4c38..e91e960 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterOptionalityOrNullableAnnotationOnParameterFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/ParameterOptionalityOrNullableAnnotationOnParameterFacetFactoryTest.java
@@ -36,7 +36,8 @@ public class ParameterOptionalityOrNullableAnnotationOnParameterFacetFactoryTest
private ParameterAnnotationFacetFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new ParameterAnnotationFacetFactory();
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
index 6e31584..e1ae1a2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/param/parameter/RegExAnnotationOnParameterFacetFactoryTest.java
@@ -35,7 +35,8 @@ public class RegExAnnotationOnParameterFacetFactoryTest extends AbstractFacetFac
private ParameterAnnotationFacetFactory facetFactory;
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
facetFactory = new ParameterAnnotationFacetFactory();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
index 292f804..a3a70ff 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/PropertyMethodsFacetFactoryTest.java
@@ -79,7 +79,8 @@ public class PropertyMethodsFacetFactoryTest extends AbstractFacetFactoryTest {
private ObjectSpecification mockSpecification;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
// expecting
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java
index d982b2f..d616d08 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/MandatoryAnnotationFacetFactoryTest.java
@@ -34,7 +34,8 @@ public class MandatoryAnnotationFacetFactoryTest extends AbstractFacetFactoryTes
private PropertyAnnotationFacetFactory facetFactory;
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
facetFactory = new PropertyAnnotationFacetFactory();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
index 816dc16..5244c28 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/NotPersistedAnnotationOnPropertyFacetFactoryTest.java
@@ -33,7 +33,8 @@ public class NotPersistedAnnotationOnPropertyFacetFactoryTest extends AbstractFa
private PropertyAnnotationFacetFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new PropertyAnnotationFacetFactory();
}
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 41f04fb..dd70966 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
@@ -116,7 +116,8 @@ public class PropertyAnnotationFacetFactoryTest extends AbstractFacetFactoryJUni
facetFactory = new PropertyAnnotationFacetFactory();
}
- @After
+ @Override
+ @After
public void tearDown() throws Exception {
facetFactory = null;
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyOptionalityOrNullableAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyOptionalityOrNullableAnnotationOnPropertyFacetFactoryTest.java
index bc7f36b..d8bef70 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyOptionalityOrNullableAnnotationOnPropertyFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/PropertyOptionalityOrNullableAnnotationOnPropertyFacetFactoryTest.java
@@ -36,7 +36,8 @@ public class PropertyOptionalityOrNullableAnnotationOnPropertyFacetFactoryTest e
private PropertyAnnotationFacetFactory facetFactory;
- public void setUp() throws Exception {
+ @Override
+ public void setUp() throws Exception {
super.setUp();
facetFactory = new PropertyAnnotationFacetFactory();
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
index dbc81e7..6479610 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/properties/property/RegExAnnotationOnPropertyFacetFactoryTest.java
@@ -35,7 +35,8 @@ public class RegExAnnotationOnPropertyFacetFactoryTest extends AbstractFacetFact
private PropertyAnnotationFacetFactory facetFactory;
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
facetFactory = new PropertyAnnotationFacetFactory();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
index 774bade..ed60daa 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigDecimalValueSemanticsProviderTest.java
@@ -39,7 +39,8 @@ public class BigDecimalValueSemanticsProviderTest extends ValueSemanticsProvider
private BigDecimal bigDecimal;
private FacetHolder holder;
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
index 27fcdf8..9a9760f 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/BigIntValueSemanticsProviderTest.java
@@ -38,7 +38,8 @@ public class BigIntValueSemanticsProviderTest extends ValueSemanticsProviderAbst
private BigInteger bigInt;
private FacetHolder holder;
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();
bigInt = new BigInteger("132199");
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServiceInjectorBuilder_forTesting.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServiceInjectorBuilder_forTesting.java
index e28e999..5036df2 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServiceInjectorBuilder_forTesting.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/ServiceInjectorBuilder_forTesting.java
@@ -30,6 +30,7 @@ import lombok.val;
/**
* @deprecated Only introduced to support existing tests, don't use for new tests
*/
+@Deprecated
@RequiredArgsConstructor(staticName="of")
public class ServiceInjectorBuilder_forTesting {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
index 9dbe449..b376ba7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/appfeat/ApplicationFeatureRepositoryDefaultTest.java
@@ -260,7 +260,8 @@ public class ApplicationFeatureRepositoryDefaultTest {
public static class AddClassParent extends ApplicationFeatureRepositoryDefaultTest {
- @Before
+ @Override
+ @Before
public void setUp() throws Exception {
super.setUp();