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 2021/09/03 10:30:14 UTC

[isis] branch master updated: ISIS-2774: fixes title component trimming

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 d038c32  ISIS-2774: fixes title component trimming
d038c32 is described below

commit d038c3293b2e8e6c4ee10ce6793bbe4f2c8f97b8
Author: Andi Huber <ah...@apache.org>
AuthorDate: Fri Sep 3 12:30:06 2021 +0200

    ISIS-2774: fixes title component trimming
    
    also re-instating test that checks this
---
 .../isis/core/metamodel/spec/ManagedObjects.java   |  3 +-
 .../specimpl/ObjectSpecificationAbstract.java      |  5 ++-
 .../TitleAnnotationFacetFactoryTest.java           | 44 ++++++++++++++++++----
 3 files changed, 42 insertions(+), 10 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
index ed7cdb4..27b014a 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObjects.java
@@ -417,7 +417,8 @@ public final class ManagedObjects {
                 val collectionFacet = managedObject.getSpecification().getFacet(CollectionFacet.class);
                 return collectionTitleString(managedObject, collectionFacet);
             } else {
-                return objectTitleString(managedObject, isContextAdapter);
+                return objectTitleString(managedObject, isContextAdapter)
+                        .trim();
             }
         }
 
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
index 84d2635..649751f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/specloader/specimpl/ObjectSpecificationAbstract.java
@@ -414,7 +414,10 @@ implements ObjectSpecification {
                 return titleString;
             }
         }
-        return (this.isManagedBean() ? "" : "Untitled ") + getSingularName();
+        val prefix = this.isManagedBean()
+                ? ""
+                : "Untitled ";
+        return prefix + getSingularName();
     }
 
     @Override
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
index 810bf40..64df7e7 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/object/ident/title/annotation/TitleAnnotationFacetFactoryTest.java
@@ -22,13 +22,13 @@ import java.lang.reflect.Method;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Optional;
+import java.util.function.Predicate;
 
 import org.jmock.Expectations;
 import org.jmock.auto.Mock;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -52,6 +52,7 @@ extends AbstractFacetFactoryJUnit4TestCase {
 
     @Mock private ManagedObject mockObjectAdapter;
     @Mock private ObjectSpecification mockStringSpec;
+    @Mock private ObjectSpecification mockIntegerSpec;
 
     @Before
     public void setUp() throws Exception {
@@ -144,21 +145,20 @@ extends AbstractFacetFactoryJUnit4TestCase {
 
         context.checking(new Expectations() {{
 
-            allowing(mockSpecificationLoader).specForType(String.class);
-            will(returnValue(Optional.of(mockStringSpec)));
-
             allowing(mockObjectAdapter).getPojo();
             will(returnValue(customer));
 
+            allowing(mockSpecificationLoader).specForType(String.class);
+            will(returnValue(Optional.of(mockStringSpec)));
+
             allowing(mockStringSpec).getCorrespondingClass();
             will(returnValue(String.class));
 
             allowing(mockStringSpec).isParentedOrFreeCollection();
             will(returnValue(false));
 
-            ignoring(mockStringSpec).assertPojoCompatible("titleElement1");
-            ignoring(mockStringSpec).assertPojoCompatible("titleElement2");
-            ignoring(mockStringSpec).assertPojoCompatible("titleElement3");
+            ignoring(mockStringSpec).assertPojoCompatible(with(any(String.class)));
+
         }});
         final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter);
         assertThat(title, is("titleElement1. titleElement3,titleElement2"));
@@ -220,7 +220,8 @@ extends AbstractFacetFactoryJUnit4TestCase {
 
     }
 
-    @Ignore //FIXME[ISI-2774] to re-instate
+    //@Ignore //FIXME[ISI-2774] to re-instate
+    @SuppressWarnings("unchecked")
     @Test
     public void titleAnnotatedMethodsSomeOfWhichReturnNulls() throws Exception {
 
@@ -236,6 +237,33 @@ extends AbstractFacetFactoryJUnit4TestCase {
             {
                 allowing(mockObjectAdapter).getPojo();
                 will(returnValue(customer));
+
+                allowing(mockSpecificationLoader).specForType(String.class);
+                will(returnValue(Optional.of(mockStringSpec)));
+
+                allowing(mockStringSpec).getCorrespondingClass();
+                will(returnValue(String.class));
+
+                allowing(mockStringSpec).isParentedOrFreeCollection();
+                will(returnValue(false));
+
+                ignoring(mockStringSpec).assertPojoCompatible(with(any(String.class)));
+
+                allowing(mockSpecificationLoader).specForType(Integer.class);
+                will(returnValue(Optional.of(mockIntegerSpec)));
+
+                allowing(mockIntegerSpec).getCorrespondingClass();
+                will(returnValue(Integer.class));
+
+                allowing(mockIntegerSpec).isParentedOrFreeCollection();
+                will(returnValue(false));
+
+                allowing(mockIntegerSpec).getTitle(with(any(Predicate.class)), with(any(ManagedObject.class)));
+                will(returnValue("3"));
+
+                ignoring(mockIntegerSpec).assertPojoCompatible(with(any(Integer.class)));
+                ignoring(mockIntegerSpec).assertPojoCompatible(with(any(int.class)));
+
             }
         });
         final String title = titleFacetViaTitleAnnotation.title(mockObjectAdapter);