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;