📄 lobtypetests.java
字号:
BlobStringType type = new BlobStringType(lobHandler, tm);
assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, content, 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.beforeCompletion();
synch.afterCompletion(Status.STATUS_COMMITTED);
tmControl.verify();
}
public void testBlobStringTypeWithJtaSynchronizationAndRollback() throws Exception {
MockControl tmControl = MockControl.createControl(TransactionManager.class);
TransactionManager tm = (TransactionManager) tmControl.getMock();
MockJtaTransaction transaction = new MockJtaTransaction();
tm.getStatus();
tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
tm.getTransaction();
tmControl.setReturnValue(transaction, 1);
String content = "content";
byte[] contentBytes = content.getBytes();
lobHandler.getBlobAsBytes(rs, 1);
lobHandlerControl.setReturnValue(contentBytes);
lobCreator.setBlobAsBytes(ps, 1, contentBytes);
lobCreatorControl.setMatcher(new ArrayMatcher());
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobStringType type = new BlobStringType(lobHandler, tm);
assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, content, 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.afterCompletion(Status.STATUS_ROLLEDBACK);
tmControl.verify();
}
public void testBlobByteArrayType() throws Exception {
byte[] content = "content".getBytes();
lobHandler.getBlobAsBytes(rs, 1);
lobHandlerControl.setReturnValue(content);
lobCreator.setBlobAsBytes(ps, 1, content);
lobCreatorControl.setVoidCallable(1);
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobByteArrayType type = new BlobByteArrayType(lobHandler, null);
assertEquals(1, type.sqlTypes().length);
assertEquals(Types.BLOB, type.sqlTypes()[0]);
assertEquals(byte[].class, type.returnedClass());
assertTrue(type.equals(new byte[] {(byte) 255}, new byte[] {(byte) 255}));
assertTrue(Arrays.equals(new byte[] {(byte) 255}, (byte[]) type.deepCopy(new byte[] {(byte) 255})));
assertTrue(type.isMutable());
assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
TransactionSynchronizationManager.initSynchronization();
try {
type.nullSafeSet(ps, content, 1);
List synchs = TransactionSynchronizationManager.getSynchronizations();
assertEquals(1, synchs.size());
((TransactionSynchronization) synchs.get(0)).beforeCompletion();
((TransactionSynchronization) synchs.get(0)).afterCompletion(TransactionSynchronization.STATUS_COMMITTED);
}
finally {
TransactionSynchronizationManager.clearSynchronization();
}
}
public void testBlobByteArrayTypeWithJtaSynchronization() throws Exception {
MockControl tmControl = MockControl.createControl(TransactionManager.class);
TransactionManager tm = (TransactionManager) tmControl.getMock();
MockJtaTransaction transaction = new MockJtaTransaction();
tm.getStatus();
tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
tm.getTransaction();
tmControl.setReturnValue(transaction, 1);
byte[] content = "content".getBytes();
lobHandler.getBlobAsBytes(rs, 1);
lobHandlerControl.setReturnValue(content);
lobCreator.setBlobAsBytes(ps, 1, content);
lobCreatorControl.setVoidCallable(1);
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobByteArrayType type = new BlobByteArrayType(lobHandler, tm);
assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, content, 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.beforeCompletion();
synch.afterCompletion(Status.STATUS_COMMITTED);
tmControl.verify();
}
public void testBlobByteArrayTypeWithJtaSynchronizationAndRollback() throws Exception {
MockControl tmControl = MockControl.createControl(TransactionManager.class);
TransactionManager tm = (TransactionManager) tmControl.getMock();
MockJtaTransaction transaction = new MockJtaTransaction();
tm.getStatus();
tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
tm.getTransaction();
tmControl.setReturnValue(transaction, 1);
byte[] content = "content".getBytes();
lobHandler.getBlobAsBytes(rs, 1);
lobHandlerControl.setReturnValue(content);
lobCreator.setBlobAsBytes(ps, 1, content);
lobCreatorControl.setVoidCallable(1);
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobByteArrayType type = new BlobByteArrayType(lobHandler, tm);
assertEquals(content, type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, content, 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.afterCompletion(Status.STATUS_ROLLEDBACK);
tmControl.verify();
}
public void testBlobSerializableType() throws Exception {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject("content");
oos.close();
lobHandler.getBlobAsBinaryStream(rs, 1);
lobHandlerControl.setReturnValue(new ByteArrayInputStream(baos.toByteArray()));
lobCreator.setBlobAsBytes(ps, 1, baos.toByteArray());
lobCreatorControl.setMatcher(new ArrayMatcher());
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobSerializableType type = new BlobSerializableType(lobHandler, null);
assertEquals(1, type.sqlTypes().length);
assertEquals(Types.BLOB, type.sqlTypes()[0]);
assertEquals(Serializable.class, type.returnedClass());
assertTrue(type.isMutable());
assertEquals("content", type.nullSafeGet(rs, new String[] {"column"}, null));
TransactionSynchronizationManager.initSynchronization();
try {
type.nullSafeSet(ps, "content", 1);
List synchs = TransactionSynchronizationManager.getSynchronizations();
assertEquals(1, synchs.size());
((TransactionSynchronization) synchs.get(0)).beforeCompletion();
((TransactionSynchronization) synchs.get(0)).afterCompletion(TransactionSynchronization.STATUS_COMMITTED);
}
finally {
TransactionSynchronizationManager.clearSynchronization();
}
}
public void testBlobSerializableTypeWithNull() throws Exception {
lobHandler.getBlobAsBinaryStream(rs, 1);
lobHandlerControl.setReturnValue(null);
lobCreator.setBlobAsBytes(ps, 1, null);
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobSerializableType type = new BlobSerializableType(lobHandler, null);
assertEquals(null, type.nullSafeGet(rs, new String[] {"column"}, null));
TransactionSynchronizationManager.initSynchronization();
try {
type.nullSafeSet(ps, null, 1);
List synchs = TransactionSynchronizationManager.getSynchronizations();
assertEquals(1, synchs.size());
((TransactionSynchronization) synchs.get(0)).beforeCompletion();
}
finally {
TransactionSynchronizationManager.clearSynchronization();
}
}
public void testBlobSerializableTypeWithJtaSynchronization() throws Exception {
MockControl tmControl = MockControl.createControl(TransactionManager.class);
TransactionManager tm = (TransactionManager) tmControl.getMock();
MockJtaTransaction transaction = new MockJtaTransaction();
tm.getStatus();
tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
tm.getTransaction();
tmControl.setReturnValue(transaction, 1);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject("content");
oos.close();
lobHandler.getBlobAsBinaryStream(rs, 1);
lobHandlerControl.setReturnValue(new ByteArrayInputStream(baos.toByteArray()));
lobCreator.setBlobAsBytes(ps, 1, baos.toByteArray());
lobCreatorControl.setMatcher(new ArrayMatcher());
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobSerializableType type = new BlobSerializableType(lobHandler, tm);
assertEquals(1, type.sqlTypes().length);
assertEquals(Types.BLOB, type.sqlTypes()[0]);
assertEquals(Serializable.class, type.returnedClass());
assertTrue(type.isMutable());
assertEquals("content", type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, "content", 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.beforeCompletion();
synch.afterCompletion(Status.STATUS_COMMITTED);
tmControl.verify();
}
public void testBlobSerializableTypeWithJtaSynchronizationAndRollback() throws Exception {
MockControl tmControl = MockControl.createControl(TransactionManager.class);
TransactionManager tm = (TransactionManager) tmControl.getMock();
MockJtaTransaction transaction = new MockJtaTransaction();
tm.getStatus();
tmControl.setReturnValue(Status.STATUS_ACTIVE, 1);
tm.getTransaction();
tmControl.setReturnValue(transaction, 1);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject("content");
oos.close();
lobHandler.getBlobAsBinaryStream(rs, 1);
lobHandlerControl.setReturnValue(new ByteArrayInputStream(baos.toByteArray()));
lobCreator.setBlobAsBytes(ps, 1, baos.toByteArray());
lobCreatorControl.setMatcher(new ArrayMatcher());
lobHandlerControl.replay();
lobCreatorControl.replay();
BlobSerializableType type = new BlobSerializableType(lobHandler, tm);
assertEquals(1, type.sqlTypes().length);
assertEquals(Types.BLOB, type.sqlTypes()[0]);
assertEquals(Serializable.class, type.returnedClass());
assertTrue(type.isMutable());
assertEquals("content", type.nullSafeGet(rs, new String[] {"column"}, null));
tmControl.replay();
type.nullSafeSet(ps, "content", 1);
Synchronization synch = transaction.getSynchronization();
assertNotNull(synch);
synch.afterCompletion(Status.STATUS_ROLLEDBACK);
tmControl.verify();
}
public void testHbm2JavaStyleInitialization() throws Exception {
rsControl.reset();
psControl.reset();
lobHandlerControl.reset();
lobCreatorControl.reset();
ClobStringType cst = null;
BlobByteArrayType bbat = null;
BlobSerializableType bst = null;
try {
cst = new ClobStringType();
bbat = new BlobByteArrayType();
bst = new BlobSerializableType();
}
catch (Exception ex) {
fail("Should not have thrown exception on initialization");
}
try {
cst.nullSafeGet(rs, new String[] {"column"}, null);
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
try {
bbat.nullSafeGet(rs, new String[] {"column"}, null);
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
try {
bst.nullSafeGet(rs, new String[] {"column"}, null);
fail("Should have thrown IllegalStateException");
}
catch (IllegalStateException ex) {
// expected
}
}
protected void tearDown() {
try {
rsControl.verify();
psControl.verify();
lobHandlerControl.verify();
lobCreatorControl.verify();
}
catch (IllegalStateException ex) {
// ignore: test method didn't call replay
}
assertTrue(TransactionSynchronizationManager.getResourceMap().isEmpty());
assertFalse(TransactionSynchronizationManager.isSynchronizationActive());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -