From c85cf49badd69b00720909daf78c3b3ba5684114 Mon Sep 17 00:00:00 2001 From: "Brian S. O'Neill" Date: Sun, 16 Mar 2008 23:48:13 +0000 Subject: Support updates to replicated LOBs. --- .../carbonado/repo/replicated/TestStorables.java | 58 +++++++++++++++++++--- 1 file changed, 52 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/test/java/com/amazon/carbonado/repo/replicated/TestStorables.java b/src/test/java/com/amazon/carbonado/repo/replicated/TestStorables.java index 31b2c72..60251fb 100644 --- a/src/test/java/com/amazon/carbonado/repo/replicated/TestStorables.java +++ b/src/test/java/com/amazon/carbonado/repo/replicated/TestStorables.java @@ -105,16 +105,16 @@ public class TestStorables extends com.amazon.carbonado.TestStorables { public void testBlobReplication() throws Exception { Storage storage = getRepository().storageFor(StorableWithLobs.class); - Storage replica = ((ReplicatedRepository) getRepository()) + Storage replicaStorage = ((ReplicatedRepository) getRepository()) .getReplicaRepository().storageFor(StorableWithLobs.class); - Storage master = ((ReplicatedRepository) getRepository()) + Storage masterStorage = ((ReplicatedRepository) getRepository()) .getMasterRepository().storageFor(StorableWithLobs.class); StorableWithLobs lobs = storage.prepare(); lobs.setBlobValue(new ByteArrayBlob("hello".getBytes())); lobs.insert(); - StorableWithLobs maLobs = master.prepare(); + StorableWithLobs maLobs = masterStorage.prepare(); maLobs.setId(lobs.getId()); maLobs.load(); assertEquals("hello", maLobs.getBlobValue().asString()); @@ -137,21 +137,44 @@ public class TestStorables extends com.amazon.carbonado.TestStorables { assertEquals("world!", blob.asString()); assertEquals("world!", maLobs.getBlobValue().asString()); + + // Do again after a fresh load + lobs.load(); + blob = lobs.getBlobValue(); + + assertEquals("world!", blob.asString()); + assertEquals("world!", maLobs.getBlobValue().asString()); + + out = blob.openOutputStream(); + out.write("the quick brown fox".getBytes()); + out.close(); + + assertEquals("the quick brown fox", blob.asString()); + assertEquals("the quick brown fox", maLobs.getBlobValue().asString()); + + // Test length change. + blob.setLength(3); + + assertEquals(3, blob.getLength()); + assertEquals(3, maLobs.getBlobValue().getLength()); + + assertEquals("the", blob.asString()); + assertEquals("the", maLobs.getBlobValue().asString()); } public void testClobReplication() throws Exception { Storage storage = getRepository().storageFor(StorableWithLobs.class); - Storage replica = ((ReplicatedRepository) getRepository()) + Storage replicaStorage = ((ReplicatedRepository) getRepository()) .getReplicaRepository().storageFor(StorableWithLobs.class); - Storage master = ((ReplicatedRepository) getRepository()) + Storage masterStorage = ((ReplicatedRepository) getRepository()) .getMasterRepository().storageFor(StorableWithLobs.class); StorableWithLobs lobs = storage.prepare(); lobs.setClobValue(new StringClob("hello")); lobs.insert(); - StorableWithLobs maLobs = master.prepare(); + StorableWithLobs maLobs = masterStorage.prepare(); maLobs.setId(lobs.getId()); maLobs.load(); assertEquals("hello", maLobs.getClobValue().asString()); @@ -174,5 +197,28 @@ public class TestStorables extends com.amazon.carbonado.TestStorables { assertEquals("world!", clob.asString()); assertEquals("world!", maLobs.getClobValue().asString()); + + // Do again after a fresh load + lobs.load(); + clob = lobs.getClobValue(); + + assertEquals("world!", clob.asString()); + assertEquals("world!", maLobs.getClobValue().asString()); + + out = clob.openWriter(); + out.write("the quick brown fox"); + out.close(); + + assertEquals("the quick brown fox", clob.asString()); + assertEquals("the quick brown fox", maLobs.getClobValue().asString()); + + // Test length change. + clob.setLength(3); + + assertEquals(3, clob.getLength()); + assertEquals(3, maLobs.getClobValue().getLength()); + + assertEquals("the", clob.asString()); + assertEquals("the", maLobs.getClobValue().asString()); } } -- cgit v1.2.3