package org.tests.unitinternal; import io.ebean.BaseTestCase; import io.ebean.Ebean; import io.ebean.Transaction; import org.tests.model.basic.EBasicVer; import org.tests.model.basic.xtra.DummyDao; import org.tests.model.basic.xtra.OptimisticLockExceptionThrowingDao; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.persistence.OptimisticLockException; public class TestTxTypeOnTransactional extends BaseTestCase { Logger logger = LoggerFactory.getLogger(TestTxTypeOnTransactional.class); @Test public void testBatchOptionsAreSet() { logger.info("-- test pre doOuterWithBatchOptionsSet"); DummyDao dao = new DummyDao(); dao.doOuterWithBatchOptionsSet(); logger.info("-- test post doOuterWithBatchOptionsSet"); } @Test public void test() { logger.info("-- test pre dao.doSomething"); DummyDao dao = new DummyDao(); dao.doSomething(); logger.info("-- test post dao.doSomething"); } public void testOptimisticException() { logger.info("-- testOptimisticException"); EBasicVer v = new EBasicVer("occ"); v.setDescription("blah"); Ebean.save(v); logger.info("-- OptimisticLockExceptionThrowingDao"); OptimisticLockExceptionThrowingDao dao = new OptimisticLockExceptionThrowingDao(); try { dao.doSomething(v); // never get here Assert.assertTrue(false); } catch (OptimisticLockException e) { Transaction inMethodTransaction = dao.getInMethodTransaction(); boolean active = inMethodTransaction.isActive(); Assert.assertFalse(active); } } }