package org.tests.transaction; import io.ebean.Ebean; import io.ebean.Transaction; import io.ebean.annotation.Transactional; import org.tests.model.basic.EBasic; import org.junit.Test; import static org.assertj.core.api.StrictAssertions.assertThat; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; public class TestTransactionRollbackOnly { private EBasic one; private EBasic two; @Test public void transaction_setRollbackOnly() { doVia_currentTransaction(); assertThat(one.getId()).isNotNull(); assertThat(Ebean.find(EBasic.class, one.getId())).isNull(); } @Transactional protected void doVia_currentTransaction() { one = new EBasic("WillNotSave"); Ebean.save(one); Transaction transaction = Ebean.currentTransaction(); assertFalse(transaction.isRollbackOnly()); transaction.setRollbackOnly(); assertTrue(transaction.isRollbackOnly()); } @Test public void test_Ebean_setRollbackOnly() { do_Ebean_setRollbackOnly(); assertThat(two.getId()).isNotNull(); assertThat(Ebean.find(EBasic.class, two.getId())).isNull(); } @Transactional protected void do_Ebean_setRollbackOnly() { two = new EBasic("WillNotSave"); Ebean.save(two); Ebean.setRollbackOnly(); } }