diff options
| author | Brian S. O'Neill <bronee@gmail.com> | 2008-07-20 06:25:27 +0000 |
|---|---|---|
| committer | Brian S. O'Neill <bronee@gmail.com> | 2008-07-20 06:25:27 +0000 |
| commit | ed2af862bd5ac610a0ff7666afb824f29eb67306 (patch) | |
| tree | 6a8833bf634d09c18fbcb1e69d8153a8fa5fc03e /src/test/java/com/amazon/carbonado/TestStorables.java | |
| parent | 58b7d9479070c41656c730a45625adcfcaf27b14 (diff) | |
Support BigInteger and BigDecimal property types.
Diffstat (limited to 'src/test/java/com/amazon/carbonado/TestStorables.java')
| -rw-r--r-- | src/test/java/com/amazon/carbonado/TestStorables.java | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/src/test/java/com/amazon/carbonado/TestStorables.java b/src/test/java/com/amazon/carbonado/TestStorables.java index a6bab16..f630193 100644 --- a/src/test/java/com/amazon/carbonado/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/TestStorables.java @@ -18,6 +18,9 @@ package com.amazon.carbonado; +import java.math.BigDecimal; +import java.math.BigInteger; + import java.io.InputStream; import java.io.OutputStream; import java.io.Writer; @@ -3013,6 +3016,78 @@ public class TestStorables extends TestCase { */ } + public void test_BigInteger() throws Exception { + Storage<WithBigInteger> storage = getRepository().storageFor(WithBigInteger.class); + + WithBigInteger s = storage.prepare(); + s.setId(1); + BigInteger bi = new BigInteger("123456789012345678901234567890"); + s.setNumber(bi); + s.insert(); + + s = storage.prepare(); + s.setId(1); + s.load(); + assertEquals(bi, s.getNumber()); + + s = storage.prepare(); + s.setId(2); + s.setNumber(null); + s.insert(); + + s.load(); + assertEquals(null, s.getNumber()); + + Query<WithBigInteger> query = storage.query("number = ?"); + + s = query.with(null).loadOne(); + assertEquals(2, s.getId()); + assertEquals(null, s.getNumber()); + + s = query.with(bi).loadOne(); + assertEquals(1, s.getId()); + assertEquals(bi, s.getNumber()); + + s = query.with(BigInteger.ZERO).tryLoadOne(); + assertEquals(null, s); + } + + public void test_BigDecimal() throws Exception { + Storage<WithBigDecimal> storage = getRepository().storageFor(WithBigDecimal.class); + + WithBigDecimal s = storage.prepare(); + s.setId(1); + BigDecimal bd = new BigDecimal("12345678901234567890.1234567890"); + s.setNumber(bd); + s.insert(); + + s = storage.prepare(); + s.setId(1); + s.load(); + assertEquals(bd, s.getNumber()); + + s = storage.prepare(); + s.setId(2); + s.setNumber(null); + s.insert(); + + s.load(); + assertEquals(null, s.getNumber()); + + Query<WithBigDecimal> query = storage.query("number = ?"); + + s = query.with(null).loadOne(); + assertEquals(2, s.getId()); + assertEquals(null, s.getNumber()); + + s = query.with(bd).loadOne(); + assertEquals(1, s.getId()); + assertEquals(bd, s.getNumber()); + + s = query.with(BigDecimal.ZERO).tryLoadOne(); + assertEquals(null, s); + } + private void assertUninitialized(boolean expected, Storable storable, String... properties) { for (String property : properties) { assertEquals(expected, storable.isPropertyUninitialized(property)); |
