From ed2af862bd5ac610a0ff7666afb824f29eb67306 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Sun, 20 Jul 2008 06:25:27 +0000 Subject: Support BigInteger and BigDecimal property types. --- .../java/com/amazon/carbonado/TestStorables.java | 75 ++++++++++++++++++++++ 1 file changed, 75 insertions(+) (limited to 'src/test/java/com/amazon/carbonado/TestStorables.java') 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 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 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 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 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)); -- cgit v1.2.3