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 09:09:50 UTC

[isis] branch master updated: ISIS-3209: metamodel test fixes (1)

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 6125b0403a ISIS-3209: metamodel test fixes (1)
6125b0403a is described below

commit 6125b0403a31b70ec57766858b60e2ca0f8c67f1
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Sep 13 11:09:40 2022 +0200

    ISIS-3209: metamodel test fixes (1)
---
 .../isis/commons/internal/base/_Strings.java       | 23 ++++++++++++++++++++--
 .../ValueSemanticsProviderAbstractTestCase.java    | 13 ++++++++----
 .../metamodel/MetaModelServiceDefaultTest.java     | 13 +++---------
 .../specimpl/OneToOneAssociationAbstractTest.java  |  6 +++---
 4 files changed, 36 insertions(+), 19 deletions(-)

diff --git a/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java b/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
index a94d8abb3c..8505519180 100644
--- a/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
+++ b/commons/src/main/java/org/apache/isis/commons/internal/base/_Strings.java
@@ -21,6 +21,7 @@ package org.apache.isis.commons.internal.base;
 import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.PrintStream;
+import java.net.URI;
 import java.nio.charset.Charset;
 import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
@@ -314,6 +315,25 @@ public final class _Strings {
         return _Strings_HtmlEscaper.htmlEscape(source);
     }
 
+    // -- URL-SAFETY
+
+    /**
+     * @see "https://stackoverflow.com/a/4571518/9269480"
+     */
+    public static boolean isUrlSafe(final String input) {
+        if(_Strings.isEmpty(input)) {
+            return true;
+        }
+        try {
+            val testDummyUri = new URI("http://localhost/?" + input);
+            val asQuery = testDummyUri.getQuery();
+            return input.equals(asQuery);
+        } catch (Exception e) {
+            // ignore
+        }
+        return false;
+    }
+
     // -- PREFIX/SUFFIX
 
     /**
@@ -847,11 +867,10 @@ public final class _Strings {
     /**
      * for example, so that a DB type converter can return null if the string wouldn't fit into a target column.
      */
-    public static String nullIfExceeds(String str, int maxLength) {
+    public static String nullIfExceeds(final String str, final int maxLength) {
         return str == null || str.length() > maxLength
                     ? null
                     : str;
     }
 
-
 }
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
index 4fb24fe093..d8f681ec6c 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/facets/value/ValueSemanticsProviderAbstractTestCase.java
@@ -24,19 +24,20 @@ import java.util.Optional;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.EnumSource;
 import org.mockito.Mockito;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.isis.applib.services.iactnlayer.InteractionService;
 import org.apache.isis.applib.value.semantics.Parser;
 import org.apache.isis.applib.value.semantics.Renderer;
 import org.apache.isis.applib.value.semantics.ValueSemanticsAbstract;
 import org.apache.isis.applib.value.semantics.ValueSemanticsProvider;
+import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.core.metamodel._testing.MetaModelContext_forTesting;
 import org.apache.isis.core.metamodel.context.MetaModelContext;
 import org.apache.isis.core.metamodel.facets.object.value.ValueSerializer;
@@ -113,8 +114,6 @@ public abstract class ValueSemanticsProviderAbstractTestCase<T> {
 
     }
 
-    //FIXME[ISIS-3207]
-    @DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
     @ParameterizedTest
     @EnumSource(Format.class)
     public void testValueSerializer(final Format format) {
@@ -123,7 +122,13 @@ public abstract class ValueSemanticsProviderAbstractTestCase<T> {
         final T value = getSample();
         final String encoded = getValueSerializer().enstring(format, value);
 
-        assertValueEncodesToJsonAs(value, encoded);
+        switch(format) {
+        case JSON:
+            assertValueEncodesToJsonAs(value, encoded);
+            break;
+        case URL_SAFE:
+            assertTrue(_Strings.isUrlSafe(encoded));
+        }
 
         T decoded = getValueSerializer().destring(format, encoded);
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefaultTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefaultTest.java
index 7af1088491..371714e936 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefaultTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/services/metamodel/MetaModelServiceDefaultTest.java
@@ -37,7 +37,6 @@ import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.condition.DisabledIfSystemProperty;
 import org.mockito.Mockito;
 
 import org.apache.isis.applib.Identifier;
@@ -55,9 +54,8 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.ObjectAction;
 import org.apache.isis.core.metamodel.specloader.specimpl.ObjectActionDefault;
 
-//FIXME[ISIS-3207]
-@DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
-class MetaModelServiceDefaultTest {
+// keep public for JABX
+public class MetaModelServiceDefaultTest {
 
     ServiceInjector stubServicesInjector;
     MetaModelServiceDefault mockMetaModelService;
@@ -89,12 +87,7 @@ class MetaModelServiceDefaultTest {
 
         mockMetaModelService = Mockito.mock(MetaModelServiceDefault.class);
         Mockito.when(mockMetaModelService.getDomainModel())
-            .thenReturn(new DomainModel() {
-                @Override
-                public java.util.List<DomainMember> getDomainMembers() {
-                    return List.of(new DomainMemberDefault(mockSpec, action));
-                }
-            });
+            .thenReturn(new DomainModelDefault(List.of(new DomainMemberDefault(mockSpec, action))));
 
     }
 
diff --git a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationAbstractTest.java b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationAbstractTest.java
index 1de893759f..efa910db97 100644
--- a/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationAbstractTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/core/metamodel/specloader/specimpl/OneToOneAssociationAbstractTest.java
@@ -20,9 +20,10 @@ package org.apache.isis.core.metamodel.specloader.specimpl;
 
 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;
+import org.mockito.junit.jupiter.MockitoExtension;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
@@ -45,8 +46,7 @@ import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.spec.feature.OneToOneAssociation;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 
-//FIXME[ISIS-3207]
-@DisabledIfSystemProperty(named = "isRunningWithSurefire", matches = "true")
+@ExtendWith(MockitoExtension.class)
 class OneToOneAssociationAbstractTest {
 
     @Mock private ObjectSpecification objectSpecification;