Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.j256.ormlite.misc;
  
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertNotNull;
  import static org.junit.Assert.assertNull;
  import static org.junit.Assert.fail;
  
 
 import org.junit.Test;
 
This is a base class for the per-database tests and can't be rolled into -core.
 
 public class JdbcTransactionManagerTest extends BaseJdbcTest {
 
 	public void before() throws Exception {
 		if ( != null) {
 			return;
 		}
 		super.before();
 		if ( != null) {
 		}
 	}
 
 	/* ============================================================================================================== */
 
 	@Test
 	public void testDaoTransactionManagerCommitted() throws Exception {
 		if ( == null) {
 			return;
 		}
 		final Dao<FooIntegerfooDao = createDao(Foo.classtrue);
 		testTransactionManager(mgrnullfooDao);
 	}
 
 	@Test
 	public void testRollBack() throws Exception {
 		if ( == null) {
 			return;
 		}
 		final Dao<FooIntegerfooDao = createDao(Foo.classtrue);
 		testTransactionManager(mgrnew RuntimeException("What!!  I protest!!"), fooDao);
 	}
 
 	@Test
 	public void testSpringWiredRollBack() throws Exception {
 		if ( == null) {
 			return;
 		}
 		mgr.initialize();
 		final Dao<FooIntegerfooDao = createDao(Foo.classtrue);
 		testTransactionManager(mgrnew RuntimeException("What!!  I protest!!"), fooDao);
 	}
 
 	@Test
 	public void testNonRuntimeExceptionWiredRollBack() throws Exception {
 		if ( == null) {
 			return;
 		}
 		mgr.initialize();
 		final Dao<FooIntegerfooDao = createDao(Foo.classtrue);
 		testTransactionManager(mgrnew Exception("What!!  I protest via an Exception!!"), fooDao);
 	}
 
 	@Test
 	public void testTransactionWithinTransaction() throws Exception {
 		if ( == null) {
 			return;
 		}
 		final Dao<FooIntegerfooDao = createDao(Foo.classtrue);
 			public Void call() throws Exception {
 				testTransactionManager(mgrnullfooDao);
 				return null;
 			}
 		});
 	}
 
 	private void testTransactionManager(TransactionManager mgrfinal Exception exception,
 			final Dao<FooIntegerfooDaothrows Exception {
 		final Foo foo1 = new Foo();
		String stuff = "stuff";
		foo1.stuff = stuff;
		assertEquals(1, fooDao.create(foo1));
		try {
			final int val = 13431231;
			int returned = mgr.callInTransaction(new Callable<Integer>() {
				public Integer call() throws Exception {
					// we delete it inside a transaction
					assertEquals(1, fooDao.delete(foo1));
					// we can't find it
					assertNull(fooDao.queryForId(foo1.id));
					if (exception != null) {
						// but then we throw an exception which rolls back the transaction
						throw exception;
else {
						return val;
					}
				}
			});
			if (exception == null) {
				assertEquals(valreturned);
else {
				fail("Should have thrown");
			}
catch (SQLException e) {
			if (exception == null) {
				throw e;
else {
				// expected
			}
		}
		if (exception == null) {
			// still doesn't find it after we delete it
			assertNull(fooDao.queryForId(foo1.id));
else {
			// still finds it after we delete it
			Foo foo2 = fooDao.queryForId(foo1.id);
			assertEquals(stufffoo2.stuff);
		}
	}
	public static class Foo {
		@DatabaseField(generatedId = true)
		int id;
		Foo() {
			// for ormlite
		}
	}
New to GrepCode? Check out our FAQ X