From 42a1c5872f939485ffc5e5b23aea7833a8761af8 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Thu, 26 Feb 2009 17:39:28 +0000 Subject: NPE fix when comparing nullable Float/Double/BigDecimal properties for equality. --- .../java/com/amazon/carbonado/TestStorables.java | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java index 484fe5a..4704cdc 100644 --- a/src/test/java/com/amazon/carbonado/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/TestStorables.java @@ -561,6 +561,40 @@ public class TestStorables extends TestCase { assertEquals(storable.getDoubleProp(), castedCopy.getDoubleProp()); } + public void test_equals() throws Exception { + // Make sure that tests against nullable properties is correct. + Storage storage = + getRepository().storageFor(WithDerivedDoubleObjVersion.class); + WithDerivedDoubleObjVersion obj1 = storage.prepare(); + WithDerivedDoubleObjVersion obj2 = storage.prepare(); + + assertTrue(obj1.equals(obj2)); + + obj1.setName("bob"); + assertFalse(obj1.equals(obj2)); + assertFalse(obj2.equals(obj1)); + + obj2.setName("bob"); + assertTrue(obj1.equals(obj2)); + assertTrue(obj2.equals(obj1)); + + obj2.markAllPropertiesClean(); + assertTrue(obj1.equals(obj2)); + assertTrue(obj2.equals(obj1)); + + obj1.setValue(1.1); + assertFalse(obj1.equals(obj2)); + assertFalse(obj2.equals(obj1)); + + obj2.setValue(1.1); + assertTrue(obj1.equals(obj2)); + assertTrue(obj2.equals(obj1)); + + obj2.setValue(1.2); + assertFalse(obj1.equals(obj2)); + assertFalse(obj2.equals(obj1)); + } + public void test_invalidStorables() throws Exception { try { getRepository().storageFor(StorableTestInvalid.class); -- cgit v1.2.3