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 2020/01/30 12:38:26 UTC

[isis] branch master updated: ISIS-2223: propagate previous mitigations also to 'internaltestsupport'

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 6d08555  ISIS-2223: propagate previous mitigations also to 'internaltestsupport'
6d08555 is described below

commit 6d08555a472c91af5dd880f2b3522e0b232d2bb2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 30 13:38:13 2020 +0100

    ISIS-2223: propagate previous mitigations also to 'internaltestsupport'
---
 .../jmocking/JUnitRuleMockery2.java                | 68 +++++++++-------------
 .../internaltestsupport/jmocking/MyMockomatic.java |  4 +-
 .../value/ValueTypeContractTestAbstract.java       |  4 +-
 3 files changed, 32 insertions(+), 44 deletions(-)

diff --git a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/JUnitRuleMockery2.java b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/JUnitRuleMockery2.java
index f0e9805..d1da91c 100644
--- a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/JUnitRuleMockery2.java
+++ b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/JUnitRuleMockery2.java
@@ -23,6 +23,7 @@ import java.lang.annotation.Target;
 import java.lang.reflect.Constructor;
 import java.lang.reflect.Field;
 import java.util.List;
+import java.util.function.Consumer;
 
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
@@ -44,6 +45,8 @@ import org.apache.isis.core.commons.internal.base._Casts;
 import org.apache.isis.core.commons.internal.context._Context;
 import org.apache.isis.core.commons.internal.environment.IsisSystemEnvironment;
 
+import lombok.RequiredArgsConstructor;
+
 import junit.framework.AssertionFailedError;
 
 
@@ -230,11 +233,7 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
      * returned in turn.
      */
     public <T> T ignoring(final T mock) {
-        checking(new Expectations() {
-            {
-                ignoring(mock);
-            }
-        });
+        checking(expectationsWith(exp->exp.ignoring(mock)));
         return mock;
     }
 
@@ -243,11 +242,7 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
      * turn.
      */
     public <T> T allowing(final T mock) {
-        checking(new Expectations() {
-            {
-                allowing(mock);
-            }
-        });
+        checking(expectationsWith(exp->exp.allowing(mock)));
         return mock;
     }
 
@@ -255,11 +250,7 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
      * Prohibit any interaction with the mock.
      */
     public <T> T never(final T mock) {
-        checking(new Expectations() {
-            {
-                never(mock);
-            }
-        });
+        checking(expectationsWith(exp->exp.never(mock)));
         return mock;
     }
 
@@ -278,38 +269,22 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
      * @return
      */
     public Object oneOf(final Object mock) {
-        checking(new Expectations() {
-            {
-                oneOf(mock);
-            }
-        });
+        checking(expectationsWith(exp->exp.oneOf(mock)));
         return mock;
     }
 
-    /**
-     * Require one interaction
-     * @return
-     * @deprecated use {@link #oneOf(Object)} instead
-     */
-    @Deprecated
-    public Object one(final Object mock) {
-        return oneOf(mock);
-    }
-
-    public static class ExpectationsOn<T> extends Expectations {
-        public ExpectationsOn(Object mock) {
-            this.mockObj = _Casts.uncheckedCast( mock );
-        }
-        private T mockObj;
-        public T mock() {
-            return mockObj;
+    @RequiredArgsConstructor
+    public static class ExpectationsOn extends Expectations {
+        private final Object mockObj;
+        public <T> T mock() {
+            return _Casts.uncheckedCast(mockObj);
         }
     }
 
-    public <T> T checking(T mock, Class<? extends ExpectationsOn<T>> expectationsClass) {
+    public <T> T checking(T mock, Class<? extends ExpectationsOn> expectationsClass) {
         try {
-            Constructor<? extends ExpectationsOn<T>> constructor = expectationsClass.getConstructor(Object.class);
-            ExpectationsOn<T> expectations = constructor.newInstance(mock);
+            Constructor<? extends ExpectationsOn> constructor = expectationsClass.getConstructor(Object.class);
+            ExpectationsOn expectations = constructor.newInstance(mock);
             checking(expectations);
             return mock;
         } catch (Exception e) {
@@ -317,5 +292,18 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
         }
     }
 
+    
+    private static class ExpectationsWithInitializer extends Expectations {
+        private ExpectationsWithInitializer(Consumer<Expectations> initializer) {
+            super();
+            initializer.accept(this);
+        }
+    }
+    
+    public static Expectations expectationsWith(Consumer<Expectations> initializer) {
+        return new ExpectationsWithInitializer(initializer);
+    }
+    
+
 
 }
diff --git a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/MyMockomatic.java b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/MyMockomatic.java
index 902cea7..fa5ece8 100644
--- a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/MyMockomatic.java
+++ b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/jmocking/MyMockomatic.java
@@ -70,8 +70,8 @@ class MyMockomatic {
 
     private <T> void checking(final Field field, final T mock) {
         JUnitRuleMockery2.Checking checking = field.getAnnotation(JUnitRuleMockery2.Checking.class);
-        @SuppressWarnings("unchecked")
-        Class<? extends JUnitRuleMockery2.ExpectationsOn<T>> expectationsOnClass = (Class<? extends JUnitRuleMockery2.ExpectationsOn<T>>) checking.value();
+        Class<? extends JUnitRuleMockery2.ExpectationsOn> expectationsOnClass = 
+                (Class<? extends JUnitRuleMockery2.ExpectationsOn>) checking.value();
         context.checking(mock, expectationsOnClass);
     }
 
diff --git a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/value/ValueTypeContractTestAbstract.java b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/value/ValueTypeContractTestAbstract.java
index 2084d25..784dd32 100644
--- a/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/value/ValueTypeContractTestAbstract.java
+++ b/core/internaltestsupport/src/main/java/org/apache/isis/core/internaltestsupport/value/ValueTypeContractTestAbstract.java
@@ -56,10 +56,10 @@ public abstract class ValueTypeContractTestAbstract<T> {
     @Test
     public void notEqualToNull() throws Exception {
         for (final T o1 : getObjectsWithSameValue()) {
-            assertThat(o1.equals(null), is(false));
+            assertThat(o1==null, is(false));
         }
         for (final T o1 : getObjectsWithDifferentValue()) {
-            assertThat(o1.equals(null), is(false));
+            assertThat(o1==null, is(false));
         }
     }