diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/TestStorables.java | 53 | ||||
| -rw-r--r-- | src/test/java/com/amazon/carbonado/util/TestConversionComparator.java (renamed from src/test/java/com/amazon/carbonado/info/TestConversionComparator.java) | 2 |
2 files changed, 49 insertions, 6 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java index 9d05056..a170409 100644 --- a/src/test/java/com/amazon/carbonado/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/TestStorables.java @@ -3050,11 +3050,22 @@ public class TestStorables extends TestCase { s = query.with(BigInteger.ZERO).tryLoadOne(); assertEquals(null, s); + + s = storage.prepare(); + s.setId(3); + s.setNumber(BigInteger.ONE); + s.insert(); + + s = query.with(BigInteger.ONE).loadOne(); + assertEquals(BigInteger.ONE, s.getNumber()); + + s = query.with(1).loadOne(); + assertEquals(BigInteger.ONE, s.getNumber()); } public void test_BigDecimal() throws Exception { BigDecimal bd = new BigDecimal("12345678901234567890.1234567890"); - BigDecimal normalized = bd.stripTrailingZeros(); + BigDecimal normalized = expectedNormalization(bd); Storage<WithBigDecimal> storage = getRepository().storageFor(WithBigDecimal.class); @@ -3069,9 +3080,18 @@ public class TestStorables extends TestCase { s = storage.prepare(); s.setId(1); s.load(); - assertFalse(bd.equals(s.getNumber())); assertEquals(normalized, s.getNumber()); + { + s = storage.prepare(); + s.setId(1); + BigDecimal bd2 = new BigDecimal("123.0"); + s.setNumber(bd2); + assertFalse(s.tryInsert()); + // Verify that normalization is rolled back if insert fails. + assertEquals(bd2, s.getNumber()); + } + s = storage.prepare(); s.setId(2); s.setNumber(null); @@ -3088,11 +3108,10 @@ public class TestStorables extends TestCase { s = query.with(bd).loadOne(); assertEquals(1, s.getId()); - assertFalse(bd.equals(s.getNumber())); assertEquals(normalized, s.getNumber()); BigDecimal bd2 = new BigDecimal("123.0"); - BigDecimal nm2 = bd2.stripTrailingZeros(); + BigDecimal nm2 = expectedNormalization(bd2); s.setNumber(bd2); s.update(); @@ -3100,12 +3119,36 @@ public class TestStorables extends TestCase { // Ensure update behaves as if Storable was reloaded. assertEquals(nm2, s.getNumber()); + { + WithBigDecimal s2 = storage.prepare(); + s2.setId(999); + BigDecimal bd3 = new BigDecimal("123.0"); + s2.setNumber(bd3); + assertFalse(s2.tryUpdate()); + // Verify that normalization is rolled back if update fails. + assertEquals(bd3, s2.getNumber()); + } + s.load(); - assertFalse(bd2.equals(s.getNumber())); assertEquals(nm2, s.getNumber()); s = query.with(BigDecimal.ZERO).tryLoadOne(); assertEquals(null, s); + + s = storage.prepare(); + s.setId(3); + s.setNumber(BigDecimal.ONE); + s.insert(); + + s = query.with(BigDecimal.ONE).loadOne(); + assertEquals(BigDecimal.ONE, s.getNumber()); + + s = query.with(1).loadOne(); + assertEquals(BigDecimal.ONE, s.getNumber()); + } + + protected BigDecimal expectedNormalization(BigDecimal bd) { + return bd.stripTrailingZeros(); } private void assertUninitialized(boolean expected, Storable storable, String... properties) { diff --git a/src/test/java/com/amazon/carbonado/info/TestConversionComparator.java b/src/test/java/com/amazon/carbonado/util/TestConversionComparator.java index a4e5614..bb4cb7f 100644 --- a/src/test/java/com/amazon/carbonado/info/TestConversionComparator.java +++ b/src/test/java/com/amazon/carbonado/util/TestConversionComparator.java @@ -16,7 +16,7 @@ * limitations under the License.
*/
-package com.amazon.carbonado.info;
+package com.amazon.carbonado.util;
import junit.framework.TestCase;
import junit.framework.TestSuite;
|
