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.