package org.hivedb.serialization; import static org.testng.AssertJUnit.assertEquals; import static org.testng.AssertJUnit.assertFalse; import static org.testng.AssertJUnit.assertNotNull; import java.io.InputStream; import java.sql.Blob; import java.util.Collections; import org.hivedb.util.classgen.GenerateInstance; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class TestBlobGetterAndSetter { private XmlXStreamSerializationProvider xmlXStreamSerializationProvider; @BeforeClass public void initializeSerializationProvider() { xmlXStreamSerializationProvider = XmlXStreamSerializationProvider.initialize(Collections.singletonList((Class)SimpleBlobject.class)); } @Test public void testGet() throws Exception { SimpleBlobject blobject = getGenerator().generate(); Blob blob = (Blob) new BlobGetter().get(blobject); assertNotNull(blob); Object thawed = getSerializer().deserialize(blob.getBinaryStream()); assertEquals(getGenerator().generateAndCopyProperties(blobject), thawed); } private Serializer<Object, InputStream> getSerializer() { return XmlXStreamSerializationProvider.instance().getSerializer((Class)SimpleBlobject.class); } @Test public void testSet() throws Exception { SimpleBlobject target = getGenerator().generate(); SimpleBlobject updated = getGenerator().generate(); assertFalse(target.equals(updated)); new BlobSetter().set(target, new BlobGetter().get(updated), null); assertEquals(getGenerator().generateAndCopyProperties(updated), target); } private GenerateInstance<SimpleBlobject> getGenerator() { return new GenerateInstance<SimpleBlobject>(SimpleBlobject.class); } }