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);