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 2018/03/05 08:30:25 UTC

[isis] branch master updated: ISIS-1897 applib: reinstate ObjectContracts tests from -legacy

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 d1eb77e  ISIS-1897 applib: reinstate ObjectContracts tests from -legacy
d1eb77e is described below

commit d1eb77e91124219ab7b38eed55f5ecb69822c551
Author: Andi Huber <ah...@apache.org>
AuthorDate: Mon Mar 5 09:30:22 2018 +0100

    ISIS-1897 applib: reinstate ObjectContracts tests from -legacy
---
 ...va => ObjectContractsLegacyTest_compareTo.java} |  2 +-
 ....java => ObjectContractsLegacyTest_equals.java} |  2 +-
 ...ctContractsLegacyTest_equals_and_hashCode.java} |  2 +-
 ...ava => ObjectContractsLegacyTest_toString.java} |  2 +-
 .../java/org/apache/isis/applib/util/Invoice.java  | 38 +++++++++++
 .../org/apache/isis/applib/util/InvoiceItem.java   | 73 ++++++++++++++++++++++
 .../apache/isis/applib/util/NumberedEvaluator.java | 32 ++++++++++
 .../applib/util/ObjectContractsTest_compareTo.java |  0
 .../applib/util/ObjectContractsTest_equals.java    | 14 ++---
 .../ObjectContractsTest_equals_and_hashCode.java   |  8 +--
 .../applib/util/ObjectContractsTest_toString.java  | 15 +++--
 11 files changed, 169 insertions(+), 19 deletions(-)

diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_compareTo.java
similarity index 96%
copy from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
copy to core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_compareTo.java
index 015a2ff..72a470e 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
+++ b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_compareTo.java
@@ -23,7 +23,7 @@ import org.junit.Before;
 
 import org.apache.isis.core.unittestsupport.comparable.ComparableContractTest_compareTo;
 
-public class ObjectContractsTest_compareTo extends ComparableContractTest_compareTo<InvoiceItem> {
+public class ObjectContractsLegacyTest_compareTo extends ComparableContractTest_compareTo<InvoiceItem> {
 
     private Invoice inv123;
     private Invoice inv456;
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals.java
similarity index 98%
copy from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
copy to core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals.java
index da37a84..8654667 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
+++ b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals.java
@@ -22,7 +22,7 @@ import org.junit.Test;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-public class ObjectContractsTest_equals {
+public class ObjectContractsLegacyTest_equals {
 
     static class Invoice4 {
         private static final String KEY_PROPERTIES = "number";
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals_and_hashCode.java
similarity index 97%
copy from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
copy to core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals_and_hashCode.java
index d93092a..7432e74 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
+++ b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_equals_and_hashCode.java
@@ -22,7 +22,7 @@ import org.apache.isis.applib.internal.collections._Lists;
 import org.apache.isis.core.unittestsupport.value.ValueTypeContractTestAbstract;
 import org.junit.Before;
 
-public class ObjectContractsTest_equals_and_hashCode extends ValueTypeContractTestAbstract<InvoiceItem3> {
+public class ObjectContractsLegacyTest_equals_and_hashCode extends ValueTypeContractTestAbstract<InvoiceItem3> {
 
     private Invoice3 inv123;
     private Invoice3 inv456;
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_toString.java
similarity index 99%
copy from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
copy to core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_toString.java
index 6b2216b..a41319e 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
+++ b/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsLegacyTest_toString.java
@@ -22,7 +22,7 @@ import static org.junit.Assert.assertThat;
 import org.junit.Before;
 import org.junit.Test;
 
-public class ObjectContractsTest_toString {
+public class ObjectContractsLegacyTest_toString {
 
     private Invoice inv;
     private Invoice2 inv2;
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
new file mode 100644
index 0000000..edcafc9
--- /dev/null
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/Invoice.java
@@ -0,0 +1,38 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.applib.util;
+
+
+class Invoice implements Comparable<Invoice>{
+    private static final String KEY_PROPERTIES = "number";
+    
+    private String number;
+    public String getNumber() {
+        return number;
+    }
+    public void setNumber(String number) {
+        this.number = number;
+    }
+    @Override
+    public String toString() {
+        return ObjectContracts.toString(this, KEY_PROPERTIES);
+    }
+    @Override
+    public int compareTo(Invoice o) {
+        return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+    }
+}
\ No newline at end of file
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
new file mode 100644
index 0000000..ce981d1
--- /dev/null
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/InvoiceItem.java
@@ -0,0 +1,73 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.applib.util;
+
+
+class InvoiceItem implements Comparable<InvoiceItem> {
+
+    static InvoiceItem newInvoiceItem(Invoice invoice, String productCode, Integer quantity, Boolean rush) {
+        final InvoiceItem invoiceItem = new InvoiceItem();
+        invoiceItem.setInvoice(invoice);
+        invoiceItem.setProductCode(productCode);
+        invoiceItem.setQuantity(quantity);
+        invoiceItem.setRush(rush);
+        return invoiceItem;
+    }
+
+    private Invoice invoice;
+    public Invoice getInvoice() {
+        return invoice;
+    }
+    public void setInvoice(Invoice invoice) {
+        this.invoice = invoice;
+    }
+
+    private String productCode;
+    public String getProductCode() {
+        return productCode;
+    }
+    public void setProductCode(String productCode) {
+        this.productCode = productCode;
+    }
+    
+    private Integer quantity;
+    public Integer getQuantity() {
+        return quantity;
+    }
+    public void setQuantity(Integer quantity) {
+        this.quantity = quantity;
+    }
+ 
+    private Boolean rush;
+    public Boolean isRush() {
+        return rush;
+    }
+    public void setRush(Boolean rush) {
+        this.rush = rush;
+    }
+    
+    private static final String KEY_PROPERTIES = "invoice desc, productCode asc, quantity asc nullsLast, rush desc nullsLast";
+    
+    @Override
+    public String toString() {
+        return ObjectContracts.toString(this, KEY_PROPERTIES);
+    }
+    @Override
+    public int compareTo(InvoiceItem o) {
+        return ObjectContracts.compare(this, o, KEY_PROPERTIES);
+    }
+}
\ No newline at end of file
diff --git a/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java b/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java
new file mode 100644
index 0000000..aa2e6cd
--- /dev/null
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/NumberedEvaluator.java
@@ -0,0 +1,32 @@
+/**
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.isis.applib.util;
+
+import org.apache.isis.applib.util.ObjectContracts.ToStringEvaluator;
+
+public class NumberedEvaluator implements ToStringEvaluator {
+
+    public boolean canEvaluate(Object o) {
+        return o instanceof Numbered;
+    }
+
+    @Override
+    public String evaluate(Object o) {
+        return ((Numbered)o).getNumber();
+    }
+
+}
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
similarity index 100%
rename from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
rename to core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_compareTo.java
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
similarity index 81%
rename from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
rename to core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
index da37a84..5526e4f 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals.java
@@ -36,11 +36,11 @@ public class ObjectContractsTest_equals {
         }
         @Override
         public int hashCode() {
-            return ObjectContractsLegacy.hashCode(this, KEY_PROPERTIES);
+            return ObjectContracts.hashCode(this, KEY_PROPERTIES);
         }
         @Override
         public boolean equals(Object obj) {
-            return ObjectContractsLegacy.equals(this, obj, KEY_PROPERTIES);
+            return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
         }
 
     }
@@ -64,27 +64,27 @@ public class ObjectContractsTest_equals {
 
     @Test
     public void happyCase() throws Exception {
-        assertTrue(ObjectContractsLegacy.equals(p, q, "number"));
+        assertTrue(ObjectContracts.equals(p, q, "number"));
     }
 
     @Test
     public void nullsAreEqual() throws Exception {
-        assertTrue(ObjectContractsLegacy.equals(null, null, "number"));
+        assertTrue(ObjectContracts.equals(null, null, "number"));
     }
 
     @Test
     public void notEqualDifferentValues() throws Exception {
-        assertFalse(ObjectContractsLegacy.equals(p, r, "number"));
+        assertFalse(ObjectContracts.equals(p, r, "number"));
     }
 
     @Test
     public void notEqualDifferentTypes() throws Exception {
-        assertFalse(ObjectContractsLegacy.equals(p, x, "number"));
+        assertFalse(ObjectContracts.equals(p, x, "number"));
     }
 
     @Test
     public void notEqualNull() throws Exception {
-        assertFalse(ObjectContractsLegacy.equals(p, null, "number"));
+        assertFalse(ObjectContracts.equals(p, null, "number"));
     }
 
 
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
similarity index 93%
rename from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
rename to core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
index d93092a..89dee00 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_equals_and_hashCode.java
@@ -68,11 +68,11 @@ class Invoice3 {
     }
     @Override
     public int hashCode() {
-        return ObjectContractsLegacy.hashCode(this, KEY_PROPERTIES);
+        return ObjectContracts.hashCode(this, KEY_PROPERTIES);
     }
     @Override
     public boolean equals(Object obj) {
-        return ObjectContractsLegacy.equals(this, obj, KEY_PROPERTIES);
+        return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
     }
     
 }
@@ -115,10 +115,10 @@ class InvoiceItem3 {
     private static final String KEY_PROPERTIES = "invoice desc, productCode, quantity";
     @Override
     public int hashCode() {
-        return ObjectContractsLegacy.hashCode(this, KEY_PROPERTIES);
+        return ObjectContracts.hashCode(this, KEY_PROPERTIES);
     }
     @Override
     public boolean equals(Object obj) {
-        return ObjectContractsLegacy.equals(this, obj, KEY_PROPERTIES);
+        return ObjectContracts.equals(this, obj, KEY_PROPERTIES);
     }
 }
diff --git a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
similarity index 88%
rename from core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
rename to core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
index 6b2216b..19274bb 100644
--- a/core/applib-legacy/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
+++ b/core/applib/src/test/java/org/apache/isis/applib/util/ObjectContractsTest_toString.java
@@ -19,6 +19,7 @@ package org.apache.isis.applib.util;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
+import org.apache.isis.applib.util.ObjectContracts.ObjectContract;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -68,11 +69,11 @@ class Invoice2 implements Comparable<Invoice2>, Numbered {
     }
     @Override
     public String toString() {
-        return ObjectContractsLegacy.toString(this, KEY_PROPERTIES);
+        return ObjectContracts.toString(this, KEY_PROPERTIES);
     }
     @Override
     public int compareTo(Invoice2 o) {
-        return ObjectContractsLegacy.compare(this, o, KEY_PROPERTIES);
+        return ObjectContracts.compare(this, o, KEY_PROPERTIES);
     }
 }
 class InvoiceItem2 implements Comparable<InvoiceItem2> {
@@ -121,12 +122,18 @@ class InvoiceItem2 implements Comparable<InvoiceItem2> {
     
     private static final String KEY_PROPERTIES = "invoice desc, productCode, quantity, rush desc";
     
+    private static final ObjectContract<InvoiceItem2> contract = 
+    		ObjectContracts.parse(InvoiceItem2.class, KEY_PROPERTIES)
+    		.withToStringEvaluators(new NumberedEvaluator());
+    
     @Override
     public String toString() {
-        return new ObjectContractsLegacy().with(new NumberedEvaluator()).toStringOf(this, KEY_PROPERTIES);
+    	return contract.toString(this);
+    	//legacy of ...
+        //return new ObjectContracts().with(new NumberedEvaluator()).toStringOf(this, KEY_PROPERTIES);
     }
     @Override
     public int compareTo(InvoiceItem2 o) {
-        return ObjectContractsLegacy.compare(this, o, KEY_PROPERTIES);
+        return ObjectContracts.compare(this, o, KEY_PROPERTIES);
     }
 }
\ No newline at end of file

-- 
To stop receiving notification emails like this one, please contact
ahuber@apache.org.