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>