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 2022/09/13 15:05:01 UTC
[isis] branch master updated: ISIS-3209: metamodel test fixes (6) - final
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new bfc1843ce4 ISIS-3209: metamodel test fixes (6) - final
bfc1843ce4 is described below
commit bfc1843ce4249dda715a72981e2351474fdbce08
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Sep 13 17:04:55 2022 +0200
ISIS-3209: metamodel test fixes (6) - final
---
.../isis/core/metamodel/facets/Evaluators.java | 7 ++-
.../annotation/TitleFacetViaTitleAnnotation.java | 2 -
.../title/methods/TitleFacetViaTitleMethod.java | 7 ++-
.../title/TitleAnnotationFacetFactoryTest.java | 69 ++++++++++++----------
.../ident/title/TitleFacetViaMethodTest.java | 3 -
.../title/TitleFacetViaTitleAnnotationTest.java | 37 +++---------
.../navparent/NavigableParentFacetMethodTest.java | 4 --
7 files changed, 57 insertions(+), 72 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
index 2d1f6498fc..fcfa136d72 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/Evaluators.java
@@ -20,6 +20,7 @@ package org.apache.isis.core.metamodel.facets;
import java.lang.annotation.Annotation;
import java.lang.invoke.MethodHandle;
+import java.lang.invoke.MethodHandles;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -178,7 +179,7 @@ public final class Evaluators {
@Override
protected MethodHandle createMethodHandle() throws IllegalAccessException {
- return _Reflect.handleOf(method);
+ return MethodHandles.lookup().unreflect(method);
}
}
@@ -199,8 +200,8 @@ public final class Evaluators {
protected MethodHandle createMethodHandle() throws IllegalAccessException {
val getter = correspondingGetter.orElse(null);
return getter!=null
- ? _Reflect.handleOf(getter)
- : _Reflect.handleOfGetterOn(field);
+ ? MethodHandles.lookup().unreflect(getter)
+ : MethodHandles.lookup().unreflectGetter(field);
}
private boolean isSameAs(final MethodEvaluator methodEvaluator) {
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
index 8875b5620b..31195f5701 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/annotation/TitleFacetViaTitleAnnotation.java
@@ -155,9 +155,7 @@ implements ImperativeFacet {
return stringBuilder.toString().trim();
} catch (final RuntimeException ex) {
-
val isUnitTesting = super.getMetaModelContext().getSystemEnvironment().isUnitTesting();
-
if(!isUnitTesting) {
log.warn("Title failure", ex);
}
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
index d932cbdc42..0fde9c3708 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/title/methods/TitleFacetViaTitleMethod.java
@@ -26,6 +26,8 @@ import org.springframework.lang.Nullable;
import org.apache.isis.applib.services.i18n.TranslatableString;
import org.apache.isis.applib.services.i18n.TranslationContext;
+import org.apache.isis.core.config.environment.IsisSystemEnvironment;
+import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.HasImperativeAspect;
import org.apache.isis.core.metamodel.facets.ImperativeAspect;
@@ -88,7 +90,10 @@ implements HasImperativeAspect {
}
return null;
} catch (final RuntimeException ex) {
- val isUnitTesting = getMetaModelContext().getSystemEnvironment().isUnitTesting();
+ val isUnitTesting = Optional.ofNullable(getMetaModelContext())
+ .map(MetaModelContext::getSystemEnvironment)
+ .map(IsisSystemEnvironment::isUnitTesting)
+ .orElse(false);
if(!isUnitTesting) {
log.warn("Failed Title {}", owningAdapter.getSpecification(), ex);
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
index 1f51b7b717..22077385dd 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleAnnotationFacetFactoryTest.java
@@ -25,7 +25,7 @@ import java.util.List;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
+import org.mockito.Mockito;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -37,6 +37,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import org.apache.isis.applib.annotation.DomainObject;
import org.apache.isis.applib.annotation.Nature;
import org.apache.isis.applib.annotation.Title;
+import org.apache.isis.applib.services.iactnlayer.InteractionService;
+import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
import org.apache.isis.core.metamodel.facetapi.Facet;
import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJupiterTestCase;
import org.apache.isis.core.metamodel.facets.Evaluators;
@@ -45,16 +47,27 @@ import org.apache.isis.core.metamodel.facets.object.title.TitleFacet;
import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleAnnotationFacetFactory;
import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation;
import org.apache.isis.core.metamodel.object.ManagedObject;
+import org.apache.isis.core.metamodel.valuesemantics.IntValueSemantics;
import lombok.val;
-public class TitleAnnotationFacetFactoryTest
+class TitleAnnotationFacetFactoryTest
extends AbstractFacetFactoryJupiterTestCase {
private TitleAnnotationFacetFactory facetFactory;
@BeforeEach
public void setUp() throws Exception {
+
+ val mockInteractionService = Mockito.mock(InteractionService.class);
+
+ metaModelContext = MetaModelContext_forTesting.builder()
+ .interactionService(mockInteractionService)
+ .valueSemantic(new IntValueSemantics())
+ .build();
+
+
+ assertNotNull(getInteractionService());
facetFactory = new TitleAnnotationFacetFactory(metaModelContext);
}
@@ -65,7 +78,9 @@ extends AbstractFacetFactoryJupiterTestCase {
super.tearDown();
}
- public static class Customer {
+ // -- SCENARIO 1
+
+ public static class Customer1 {
@Title
public String someTitle() {
@@ -76,17 +91,19 @@ extends AbstractFacetFactoryJupiterTestCase {
@Test
public void testTitleAnnotatedMethodPickedUpOnClassRemoved() throws Exception {
facetFactory.process(ProcessClassContext
- .forTesting(Customer.class, mockMethodRemover, facetedMethod));
+ .forTesting(Customer1.class, mockMethodRemover, facetedMethod));
final Facet facet = facetedMethod.getFacet(TitleFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof TitleFacetViaTitleAnnotation);
- final TitleFacetViaTitleAnnotation titleFacetViaTitleAnnotation = (TitleFacetViaTitleAnnotation) facet;
+ final TitleFacetViaTitleAnnotation titleFacetViaTitleAnnotation =
+ (TitleFacetViaTitleAnnotation) facet;
- final List<Method> titleMethods = Arrays.asList(Customer.class.getMethod("someTitle"));
+ final List<Method> titleMethods = Arrays.asList(Customer1.class.getMethod("someTitle"));
for (int i = 0; i < titleMethods.size(); i++) {
final Evaluators.MethodEvaluator titleEvaluator =
- (Evaluators.MethodEvaluator) titleFacetViaTitleAnnotation.getComponents().getElseFail(i)
+ (Evaluators.MethodEvaluator) titleFacetViaTitleAnnotation.getComponents()
+ .getElseFail(i)
.getTitleEvaluator();
assertEquals(titleMethods.get(i),
@@ -94,6 +111,8 @@ extends AbstractFacetFactoryJupiterTestCase {
}
}
+ // -- SCENARIO 2
+
public static class Customer2 {
@Title(sequence = "1", append = ".")
@@ -113,8 +132,6 @@ extends AbstractFacetFactoryJupiterTestCase {
}
- //FIXME[ISIS-3207]
- @DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
@Test
public void testTitleAnnotatedMethodsPickedUpOnClass() throws Exception {
@@ -124,14 +141,18 @@ extends AbstractFacetFactoryJupiterTestCase {
final Facet facet = facetedMethod.getFacet(TitleFacet.class);
assertNotNull(facet);
assertTrue(facet instanceof TitleFacetViaTitleAnnotation);
- final TitleFacetViaTitleAnnotation titleFacetViaTitleAnnotation = (TitleFacetViaTitleAnnotation) facet;
+ final TitleFacetViaTitleAnnotation titleFacetViaTitleAnnotation =
+ (TitleFacetViaTitleAnnotation) facet;
- final List<Method> titleMethods = Arrays.asList(Customer2.class.getMethod("titleElement1"), Customer2.class.getMethod("titleElement3"), Customer2.class.getMethod("titleElement2"));
+ final List<Method> titleMethods = Arrays.asList(
+ Customer2.class.getMethod("titleElement1"),
+ Customer2.class.getMethod("titleElement3"),
+ Customer2.class.getMethod("titleElement2"));
- //final List<TitleComponent> components = titleFacetViaTitleAnnotation.getComponents();
for (int i = 0; i < titleMethods.size(); i++) {
final Evaluators.MethodEvaluator titleEvaluator =
- (Evaluators.MethodEvaluator) titleFacetViaTitleAnnotation.getComponents().getElseFail(i)
+ (Evaluators.MethodEvaluator) titleFacetViaTitleAnnotation.getComponents()
+ .getElseFail(i)
.getTitleEvaluator();
assertEquals(titleMethods.get(i),
@@ -145,6 +166,8 @@ extends AbstractFacetFactoryJupiterTestCase {
assertThat(title, is("titleElement1. titleElement3,titleElement2"));
}
+ // -- SCENARIO 3
+
public static class Customer3 {
}
@@ -157,6 +180,8 @@ extends AbstractFacetFactoryJupiterTestCase {
assertNull(facetedMethod.getFacet(TitleFacet.class));
}
+ // -- SCENARIO 4
+
@DomainObject(nature = Nature.VIEW_MODEL)
public static class Customer4 {
@@ -202,8 +227,6 @@ extends AbstractFacetFactoryJupiterTestCase {
}
- //FIXME[ISIS-3207]
- @DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
@Test
public void titleAnnotatedMethodsSomeOfWhichReturnNulls() throws Exception {
@@ -217,25 +240,11 @@ extends AbstractFacetFactoryJupiterTestCase {
facetFactory.process(ProcessClassContext
.forTesting(Customer4.class, mockMethodRemover, facetedMethod));
- final Customer4 customer = new Customer4();
- val objectAdapter = ManagedObject.adaptScalar(getSpecificationLoader(), customer);
+ val objectAdapter = getObjectManager().adapt(new Customer4());
assertThat(objectAdapter.getTitle(),
is("titleElement1 titleElement3 titleElement5 3 this needs to be trimmed"));
}
- public static class Customer5 {
-
- @Title(sequence = "1")
- public String titleProperty() {
- return "titleElement1";
- }
-
- public String otherProperty() {
- return null;
- }
- }
-
-
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
index 1a88ac5ebc..43875a0b66 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaMethodTest.java
@@ -22,7 +22,6 @@ import java.lang.reflect.Method;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.mockito.Mockito;
import static org.hamcrest.CoreMatchers.is;
@@ -35,8 +34,6 @@ import org.apache.isis.core.metamodel.facets.AbstractFacetFactoryJupiterTestCase
import org.apache.isis.core.metamodel.facets.object.title.methods.TitleFacetViaTitleMethod;
import org.apache.isis.core.metamodel.object.ManagedObject;
-//FIXME[ISIS-3207]
-@DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
class TitleFacetViaMethodTest
extends AbstractFacetFactoryJupiterTestCase {
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
index 900a8c4a6f..696c3ef0df 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/TitleFacetViaTitleAnnotationTest.java
@@ -20,7 +20,6 @@ package org.apache.isis.core.metamodel.facets.object.ident.title;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.Mockito;
@@ -35,14 +34,14 @@ import org.apache.isis.core.metamodel.context.MetaModelContext;
import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.title.annotation.TitleFacetViaTitleAnnotation;
import org.apache.isis.core.metamodel.object.ManagedObject;
-import org.apache.isis.core.metamodel.objectmanager.ObjectManager;
+
+import lombok.val;
@ExtendWith(MockitoExtension.class)
class TitleFacetViaTitleAnnotationTest {
@Mock FacetHolder mockFacetHolder;
@Mock ManagedObject mockManagedObject;
- @Mock ObjectManager mockObjectManager;
protected MetaModelContext metaModelContext;
@@ -77,13 +76,9 @@ class TitleFacetViaTitleAnnotationTest {
@BeforeEach
public void setUp() {
metaModelContext = MetaModelContext_forTesting.builder()
-// .objectAdapterProvider(mockAdapterManager)
- .objectManager(mockObjectManager)
.build();
}
- //FIXME[ISIS-3207]
- @DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
@Test
public void testTitle() throws Exception {
@@ -93,29 +88,13 @@ class TitleFacetViaTitleAnnotationTest {
.orElse(null);
final NormalDomainObject normalPojo = new NormalDomainObject();
-//FIXME
-// final Sequence sequence = context.sequence("in-title-element-order");
-// context.checking(new Expectations() {
-// {
-//
-// allowing(mockFacetHolder).getMetaModelContext();
-// will(returnValue(metaModelContext));
-//
-// allowing(mockManagedObject).getPojo();
-// will(returnValue(normalPojo));
-//
-// allowing(mockObjectManager).adapt("Normal");
-// inSequence(sequence);
-//
-// allowing(mockObjectManager).adapt("Domain");
-// inSequence(sequence);
-//
-// allowing(mockObjectManager).adapt("Object");
-// inSequence(sequence);
-// }
-// });
- final String title = facet.title(mockManagedObject);
+ Mockito.when(mockFacetHolder.getMetaModelContext()).thenReturn(metaModelContext);
+
+ val managedObject =
+ metaModelContext.getObjectManager().adapt(normalPojo);
+
+ final String title = facet.title(managedObject);
assertThat(title, is("Normal Domain Object"));
}
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodTest.java
index dbcc05cfec..238d638b2d 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/navparent/NavigableParentFacetMethodTest.java
@@ -23,7 +23,6 @@ import java.lang.reflect.Method;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
import org.mockito.Mockito;
import static org.hamcrest.CoreMatchers.is;
@@ -34,9 +33,6 @@ import org.apache.isis.core.metamodel.facetapi.FacetHolder;
import org.apache.isis.core.metamodel.facets.object.navparent.method.NavigableParentFacetViaMethod;
import org.apache.isis.core.metamodel.object.ManagedObject;
-//FIXME[ISIS-3207] reflection using MH throws
-// java.lang.IllegalAccessException: access to public member failed: org.apache.isis.core.metamodel.facets.object.navparent.NavigableParentFacetMethodTest$DomainObjectWithProblemInNavigableParentMethod.parent[Ljava.lang.Object;@3eb631b8/invokeVirtual, from class org.apache.isis.commons.internal.reflection._Reflect (module org.apache.isis.commons)
-@DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
class NavigableParentFacetMethodTest {
private NavigableParentFacetViaMethod facet;