Mathijs den Burger pushed to branch feature/CC-CHANNELMGR-1520 at cms-community 
/ hippo-addon-channel-manager


Commits:
bbe07f37 by Mathijs den Burger at 2018-02-09T14:41:10+01:00
CHANNELMGR-1520 Don't include empty compound fields in document types

An empty compound field is not "valid" but does not contain any
unsupported validator either. In that case the field should be not
reported as an "unknown" one, but it should not be included in the
document type either.

- - - - -


2 changed files:

- 
content-service/src/main/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtils.java
- 
content-service/src/test/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtilsTest.java


Changes:

=====================================
content-service/src/main/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtils.java
=====================================
--- 
a/content-service/src/main/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtils.java
+++ 
b/content-service/src/main/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtils.java
@@ -184,16 +184,19 @@ public class FieldTypeUtils {
             final FieldsInformation fieldInfo = fieldType.init(context);
             if (fieldType.isValid()) {
                 allFieldsInfo.add(fieldInfo);
-            } else if (fieldType.hasUnsupportedValidator()) {
+                return result;
+            }
+
+            if (fieldType.hasUnsupportedValidator()) {
                 allFieldsInfo.addUnknownField(context.getContentTypeItem());
-                result = Optional.empty();
             }
+            // Else the field is a known one, but still invalid (example: an 
empty compound). Don't include
+            // the field is the list of "unknown" fields, but don't include it 
in the document type either.
         } else {
             allFieldsInfo.addUnknownField(context.getContentTypeItem());
-            result = Optional.empty();
         }
 
-        return result;
+        return Optional.empty();
     }
 
     private static Optional<TypeDescriptor> determineDescriptor(final 
FieldTypeContext context) {


=====================================
content-service/src/test/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtilsTest.java
=====================================
--- 
a/content-service/src/test/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtilsTest.java
+++ 
b/content-service/src/test/java/org/onehippo/cms/channelmanager/content/documenttype/field/FieldTypeUtilsTest.java
@@ -541,7 +541,7 @@ public class FieldTypeUtilsTest {
     }
 
     @Test
-    public void populateFieldsInvalidCompoundField() {
+    public void populateFieldsEmptyCompoundField() {
         final List<FieldType> fields = new ArrayList<>();
         final FieldSorter sorter = createMock(FieldSorter.class);
         final ContentTypeContext context = 
createMock(ContentTypeContext.class);
@@ -572,9 +572,7 @@ public class FieldTypeUtilsTest {
         assertTrue(fieldsInfo.isAllFieldsIncluded());
         assertTrue(fieldsInfo.getCanCreateAllRequiredFields());
         assertTrue(fieldsInfo.getUnsupportedFieldTypes().isEmpty());
-
-        assertThat(fields.size(), equalTo(1));
-        assertThat(fields.get(0), equalTo(fieldType));
+        assertTrue(fields.isEmpty());
         verifyAll();
     }
 



View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-addon-channel-manager/commit/bbe07f379538bbf799e7a087f89ebcc8f17e1846

---
View it on GitLab: 
https://code.onehippo.org/cms-community/hippo-addon-channel-manager/commit/bbe07f379538bbf799e7a087f89ebcc8f17e1846
You're receiving this email because of your account on code.onehippo.org.
_______________________________________________
Hippocms-svn mailing list
Hippocms-svn@lists.onehippo.org
https://lists.onehippo.org/mailman/listinfo/hippocms-svn

Reply via email to