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