From 60bc9218d0872e40a6857706d51955ee3d058717 Mon Sep 17 00:00:00 2001
From: Carlo Zancanaro <carlo@zancanaro.id.au>
Date: Wed, 10 Jun 2015 00:21:35 +1000
Subject: Support enums in the ObjectGeneration stuff

---
 .../id/zancanaro/javacheck/object/MyObjectAddTest.java   |  1 +
 .../java/au/id/zancanaro/javacheck/object/SubObject.java | 16 +++++++++++-----
 2 files changed, 12 insertions(+), 5 deletions(-)

(limited to 'src/test/java')

diff --git a/src/test/java/au/id/zancanaro/javacheck/object/MyObjectAddTest.java b/src/test/java/au/id/zancanaro/javacheck/object/MyObjectAddTest.java
index 9321acb..884114c 100644
--- a/src/test/java/au/id/zancanaro/javacheck/object/MyObjectAddTest.java
+++ b/src/test/java/au/id/zancanaro/javacheck/object/MyObjectAddTest.java
@@ -16,6 +16,7 @@ public class MyObjectAddTest {
         assertTrue(added.string.length() == a.string.length() + b.string.length());
         assertTrue(added.value == a.value + b.value);
         assertEquals(added.subObject, a.subObject.add(b.subObject));
+        assertEquals(added.subObject.value, a.subObject.value);
     }
 
 }
diff --git a/src/test/java/au/id/zancanaro/javacheck/object/SubObject.java b/src/test/java/au/id/zancanaro/javacheck/object/SubObject.java
index bdf2ce8..1e49cfe 100644
--- a/src/test/java/au/id/zancanaro/javacheck/object/SubObject.java
+++ b/src/test/java/au/id/zancanaro/javacheck/object/SubObject.java
@@ -4,9 +4,11 @@ import java.util.*;
 
 public class SubObject<T> {
     public final Map<String, List<T>> obj;
+    public final EnumValues value;
 
-    public SubObject(Map<String, List<T>> obj) {
+    public SubObject(Map<String, List<T>> obj, EnumValues value) {
         this.obj = obj;
+        this.value = value;
     }
 
     public SubObject<T> add(SubObject<T> other) {
@@ -21,12 +23,12 @@ public class SubObject<T> {
                 values.put(key, entry.getValue());
             }
         }
-        return new SubObject<>(Collections.unmodifiableMap(values));
+        return new SubObject<>(Collections.unmodifiableMap(values), this.value);
     }
 
     @Override
     public String toString() {
-        return obj.toString();
+        return "{" + obj.toString() + ", " + this.value + "}";
     }
 
     @Override
@@ -34,11 +36,15 @@ public class SubObject<T> {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
         SubObject subObject = (SubObject) o;
-        return obj.equals(subObject.obj);
+        return obj.equals(subObject.obj) && value.equals(subObject.value);
     }
 
     @Override
     public int hashCode() {
-        return obj.hashCode();
+        return obj.hashCode() + 37 * value.hashCode();
+    }
+
+    public static enum EnumValues {
+        A, B, C
     }
 }
-- 
cgit v1.2.3