polygene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nic...@apache.org
Subject [23/25] zest-java git commit: Since the Jenkins build is broken anyway, I am committing this testcase, which exposes a Value Equality issue. The two values should be equal, but are not.
Date Fri, 19 Aug 2016 12:18:57 GMT
Since the Jenkins build is broken anyway, I am committing this testcase, which exposes a Value
Equality issue. The two values should be equal, but are not.


Project: http://git-wip-us.apache.org/repos/asf/zest-java/repo
Commit: http://git-wip-us.apache.org/repos/asf/zest-java/commit/c62ee068
Tree: http://git-wip-us.apache.org/repos/asf/zest-java/tree/c62ee068
Diff: http://git-wip-us.apache.org/repos/asf/zest-java/diff/c62ee068

Branch: refs/heads/ValueSerializationCleaning
Commit: c62ee068d5d82608bb3ab556899220c5ef2d389a
Parents: 65c7df3
Author: Niclas Hedhman <niclas@hedhman.org>
Authored: Thu Jun 16 18:05:30 2016 +0800
Committer: Niclas Hedhman <niclas@hedhman.org>
Committed: Thu Jun 16 18:05:30 2016 +0800

----------------------------------------------------------------------
 .../zest/runtime/value/ValueEqualityTest.java   | 43 +++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/zest-java/blob/c62ee068/core/runtime/src/test/java/org/apache/zest/runtime/value/ValueEqualityTest.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/test/java/org/apache/zest/runtime/value/ValueEqualityTest.java
b/core/runtime/src/test/java/org/apache/zest/runtime/value/ValueEqualityTest.java
index 91c5868..c88f4ae 100644
--- a/core/runtime/src/test/java/org/apache/zest/runtime/value/ValueEqualityTest.java
+++ b/core/runtime/src/test/java/org/apache/zest/runtime/value/ValueEqualityTest.java
@@ -19,6 +19,15 @@
  */
 package org.apache.zest.runtime.value;
 
+import java.time.Duration;
+import java.time.Period;
+import java.time.temporal.ChronoUnit;
+import java.util.HashMap;
+import java.util.Map;
+import org.apache.zest.api.common.UseDefaults;
+import org.apache.zest.api.property.Property;
+import org.apache.zest.api.value.ValueBuilder;
+import org.apache.zest.test.value.AbstractValueCompositeSerializationTest;
 import org.junit.Test;
 import org.apache.zest.api.association.AssociationStateHolder;
 import org.apache.zest.api.value.ValueComposite;
@@ -55,7 +64,7 @@ public class ValueEqualityTest
     public void assemble( ModuleAssembly module )
         throws AssemblyException
     {
-        module.values( PrimitivesValue.class, Some.class, AnotherSome.class, Other.class
);
+        module.values( PrimitivesValue.class, Some.class, AnotherSome.class, Other.class,
ComplexKey.class );
     }
 
     //
@@ -238,4 +247,36 @@ public class ValueEqualityTest
                     some.hashCode(),
                     not( equalTo( anotherSome.hashCode() ) ) );
     }
+
+    @Test
+    public void givenComplexKeyWhenEqualityCheckExpectEqual()
+        throws Exception
+    {
+        Map<String, Map<Duration, Period>> map3 = new HashMap<>();
+        Map<Duration, Period> map4 = new HashMap<>();
+        map4.put( Duration.of( 1000, ChronoUnit.MILLIS ), Period.of( 1, 2, 3 ) );
+        map3.put( "habba", map4 );
+        ValueBuilder<ComplexKey> builder1 = valueBuilderFactory.newValueBuilder( ComplexKey.class
);
+        builder1.prototype().durations().set( map3 );
+        ComplexKey key1 = builder1.newInstance();
+
+        Map<String, Map<Duration, Period>> map1 = new HashMap<>();
+        Map<Duration, Period> map2 = new HashMap<>();
+        map2.put( Duration.of( 1000, ChronoUnit.MILLIS ), Period.of( 1, 2, 3 ) );
+        map1.put( "habba", map2 );
+        ValueBuilder<ComplexKey> builder2 = valueBuilderFactory.newValueBuilder( ComplexKey.class
);
+        builder2.prototype().durations().set( map1 );
+        ComplexKey key2 = builder2.newInstance();
+
+        assertThat( key1, equalTo( key2 ) );
+    }
+
+    public interface ComplexKey
+    {
+        @UseDefaults
+        Property<Map<String, Map<Duration, Period>>> durations();
+    }
+
+
+
 }


Mime
View raw message