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 11:59:58 UTC
[isis] branch master updated (72118c8 -> 58ab592)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git.
from 72118c8 ISIS-2274: fixes unit tests
new fbd4d7d ISIS-2158: correcting RO pom name
new 5a2f0b1 ISIS-2158: move sorting logic to ManagedObject (for possible reuse)
new ca8760f ISIS-2223: fixes null check bug in shared test class
new 58ab592 ISIS-2223: remove deprecated mocking 'one(...)'
The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../isis/core/metamodel/spec/ManagedObject.java | 44 ++++++++++++++
.../applib/core/jmocking/JUnitRuleMockery2.java | 67 +++++++++-------------
.../applib/core/jmocking/MyMockomatic.java | 4 +-
.../core/value/ValueTypeContractTestAbstract.java | 4 +-
viewers/restfulobjects/viewer/pom.xml | 2 +-
.../CollectionContentsSortableDataProvider.java | 37 +-----------
6 files changed, 77 insertions(+), 81 deletions(-)
[isis] 04/04: ISIS-2223: remove deprecated mocking 'one(...)'
Posted by ah...@apache.org.
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
commit 58ab592c93f1e34382d1b56949d27f73324a2d3c
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 30 12:59:45 2020 +0100
ISIS-2223: remove deprecated mocking 'one(...)'
- also remove generic type parameter in ExpectationsOn<T> (no way the
compiler can make use of this anyway)
- also remove Double Brace Initialization (DBI)
---
.../applib/core/jmocking/JUnitRuleMockery2.java | 67 +++++++++-------------
.../applib/core/jmocking/MyMockomatic.java | 4 +-
2 files changed, 29 insertions(+), 42 deletions(-)
diff --git a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.java b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.java
index d7e26f0..f26adde 100644
--- a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.java
+++ b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/JUnitRuleMockery2.java
@@ -44,6 +44,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 +232,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(()->ignoring(mock)));
return mock;
}
@@ -243,11 +241,7 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
* turn.
*/
public <T> T allowing(final T mock) {
- checking(new Expectations() {
- {
- allowing(mock);
- }
- });
+ checking(expectationsWith(()->allowing(mock)));
return mock;
}
@@ -255,11 +249,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(()->never(mock)));
return mock;
}
@@ -278,38 +268,22 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
* @return
*/
public Object oneOf(final Object mock) {
- checking(new Expectations() {
- {
- oneOf(mock);
- }
- });
+ checking(expectationsWith(()->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 +291,18 @@ public class JUnitRuleMockery2 extends JUnit4Mockery implements MethodRule {
}
}
+
+ private static class ExpectationsWithInitializer extends Expectations {
+ private ExpectationsWithInitializer(Runnable initializer) {
+ super();
+ initializer.run();
+ }
+ }
+
+ public static Expectations expectationsWith(Runnable initializer) {
+ return new ExpectationsWithInitializer(initializer);
+ }
+
+
}
diff --git a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/MyMockomatic.java b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/MyMockomatic.java
index 1d20d16..101c0d0 100644
--- a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/jmocking/MyMockomatic.java
+++ b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/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);
}
[isis] 02/04: ISIS-2158: move sorting logic to ManagedObject (for
possible reuse)
Posted by ah...@apache.org.
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
commit 5a2f0b13724048d84ad19ceca1e727f7695daae5
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 30 12:23:51 2020 +0100
ISIS-2158: move sorting logic to ManagedObject (for possible reuse)
---
.../isis/core/metamodel/spec/ManagedObject.java | 44 ++++++++++++++++++++++
.../CollectionContentsSortableDataProvider.java | 37 +-----------------
2 files changed, 45 insertions(+), 36 deletions(-)
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
index 3610570..9b9bdbf 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/spec/ManagedObject.java
@@ -22,6 +22,7 @@ package org.apache.isis.core.metamodel.spec;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Collections;
+import java.util.Comparator;
import java.util.List;
import java.util.Set;
import java.util.function.Function;
@@ -34,6 +35,7 @@ import org.apache.isis.applib.annotation.Where;
import org.apache.isis.applib.domain.DomainObjectList;
import org.apache.isis.applib.services.repository.EntityState;
import org.apache.isis.core.commons.collections.Can;
+import org.apache.isis.core.commons.internal.base._NullSafe;
import org.apache.isis.core.commons.internal.base._Tuples.Indexed;
import org.apache.isis.core.commons.internal.collections._Arrays;
import org.apache.isis.core.commons.internal.collections._Lists;
@@ -52,6 +54,7 @@ import org.apache.isis.core.metamodel.interactions.ObjectVisibilityContext;
import org.apache.isis.core.metamodel.interactions.VisibilityContext;
import org.apache.isis.core.metamodel.objectmanager.create.ObjectCreator;
import org.apache.isis.core.metamodel.objectmanager.load.ObjectLoader;
+import org.apache.isis.core.metamodel.spec.feature.ObjectAssociation;
import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
import org.apache.isis.core.metamodel.specloader.SpecificationLoaderDefault;
@@ -356,6 +359,47 @@ public interface ManagedObject {
return adapter.getPojo()==null;
}
+ // -- COMPARE UTILITIES
+
+ @NoArgsConstructor(access = AccessLevel.PRIVATE)
+ static final class CompareUtil {
+
+ public static int compare(@Nullable ManagedObject p, @Nullable ManagedObject q) {
+ return NATURAL_NULL_FIRST.compare(p, q);
+ }
+
+ public static Comparator<ManagedObject> orderingBy(ObjectAssociation sortProperty, boolean ascending) {
+
+ final Comparator<ManagedObject> comparator = ascending
+ ? NATURAL_NULL_FIRST
+ : NATURAL_NULL_FIRST.reversed();
+
+ return (p, q) -> {
+ val pSort = sortProperty.get(p, InteractionInitiatedBy.FRAMEWORK);
+ val qSort = sortProperty.get(q, InteractionInitiatedBy.FRAMEWORK);
+ return comparator.compare(pSort, qSort);
+ };
+
+ }
+
+ // -- PREDEFINED COMPARATOR
+
+ private static final Comparator<ManagedObject> NATURAL_NULL_FIRST = new Comparator<ManagedObject>(){
+ @SuppressWarnings({ "unchecked", "rawtypes" })
+ @Override
+ public int compare(@Nullable ManagedObject p, @Nullable ManagedObject q) {
+ val pPojo = ManagedObject.unwrapSingle(p);
+ val qPojo = ManagedObject.unwrapSingle(q);
+ if(!(pPojo instanceof Comparable) || !(qPojo instanceof Comparable)) {
+ return 0;
+ }
+ return _NullSafe.compareNullsFirst((Comparable)pPojo, (Comparable)qPojo);
+ }
+
+ };
+
+ }
+
// -- VISIBILITY UTILITIES
@NoArgsConstructor(access = AccessLevel.PRIVATE)
diff --git a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
index 5fb8758..950ad22 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/collectioncontents/ajaxtable/CollectionContentsSortableDataProvider.java
@@ -20,7 +20,6 @@
package org.apache.isis.viewer.wicket.ui.components.collectioncontents.ajaxtable;
import java.util.Collections;
-import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.function.Predicate;
@@ -31,7 +30,6 @@ import org.apache.wicket.extensions.markup.html.repeater.util.SortableDataProvid
import org.apache.wicket.model.IModel;
import org.apache.isis.applib.annotation.Where;
-import org.apache.isis.core.commons.internal.base._NullSafe;
import org.apache.isis.core.commons.internal.collections._Lists;
import org.apache.isis.core.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.core.metamodel.consent.InteractionResult;
@@ -115,7 +113,7 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
final ObjectAssociation sortProperty = lookupAssociationFor(sort);
if(sortProperty != null) {
- Collections.sort(copy, orderingBy(sortProperty, sort.isAscending()));
+ Collections.sort(copy, ManagedObject.CompareUtil.orderingBy(sortProperty, sort.isAscending()));
}
return copy;
@@ -158,38 +156,5 @@ public class CollectionContentsSortableDataProvider extends SortableDataProvider
Where.ALL_TABLES);
}
- private static Comparator<ManagedObject> orderingBy(
- ObjectAssociation sortProperty,
- boolean ascending) {
-
- return new Comparator<ManagedObject>(){
-
- @Override
- public int compare(ManagedObject p, ManagedObject q) {
- val pSort = sortProperty.get(p, InteractionInitiatedBy.FRAMEWORK);
- val qSort = sortProperty.get(q, InteractionInitiatedBy.FRAMEWORK);
-
- return (ascending ? NATURAL_NULL_FIRST : NATURAL_NULL_FIRST.reversed())
- .compare(pSort, qSort);
- }
- };
-
- }
-
- private static final Comparator<ManagedObject> NATURAL_NULL_FIRST = new Comparator<ManagedObject>(){
- @SuppressWarnings({ "unchecked", "rawtypes" })
- @Override
- public int compare(ManagedObject p, ManagedObject q) {
- val pPojo = ManagedObject.unwrapSingle(p);
- val qPojo = ManagedObject.unwrapSingle(q);
- if(!(pPojo instanceof Comparable) || !(qPojo instanceof Comparable)) {
- return 0;
- }
- return _NullSafe.compareNullsFirst((Comparable)pPojo, (Comparable)qPojo);
- }
-
- };
-
-
}
\ No newline at end of file
[isis] 03/04: ISIS-2223: fixes null check bug in shared test class
Posted by ah...@apache.org.
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
commit ca8760fea7ddce7dc101c6948086d98c0f1ee2cf
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 30 12:27:41 2020 +0100
ISIS-2223: fixes null check bug in shared test class
---
.../applib/core/value/ValueTypeContractTestAbstract.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/value/ValueTypeContractTestAbstract.java b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/value/ValueTypeContractTestAbstract.java
index e78e497..147a8e9 100644
--- a/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/value/ValueTypeContractTestAbstract.java
+++ b/testing/unittestsupport/applib/src/main/java/org/apache/isis/testing/unittestsupport/applib/core/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));
}
}
[isis] 01/04: ISIS-2158: correcting RO pom name
Posted by ah...@apache.org.
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
commit fbd4d7d251ed40387eeb9c1591b8a88ca372610d
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Jan 30 12:14:21 2020 +0100
ISIS-2158: correcting RO pom name
---
viewers/restfulobjects/viewer/pom.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/viewers/restfulobjects/viewer/pom.xml b/viewers/restfulobjects/viewer/pom.xml
index 405551c..040fd7b 100644
--- a/viewers/restfulobjects/viewer/pom.xml
+++ b/viewers/restfulobjects/viewer/pom.xml
@@ -28,7 +28,7 @@
<artifactId>isis-viewer-restfulobjects-viewer</artifactId>
- <name>Apache Isis Viewer - RO (Server)</name>
+ <name>Apache Isis Viewer - RO (SeViewerrver)</name>
<properties>
<jar-plugin.automaticModuleName>org.apache.isis.viewer.restfulobjects.viewer</jar-plugin.automaticModuleName>