package bitronix.tm.integration.spring;
import java.sql.SQLException;
import javax.inject.Inject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.Repeat;
import org.springframework.test.annotation.DirtiesContext.ClassMode;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import bitronix.tm.mock.events.EventRecorder;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:test-context.xml")
@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
public class PlatformTransactionManagerTest {
private static final Logger log = LoggerFactory.getLogger(PlatformTransactionManagerTest.class);
@Inject
private TransactionalBean bean;
@Before @After
public void clearEvents() {
EventRecorder.clear();
}
@After
public void logEvents() {
if (log.isDebugEnabled()) {
log.debug(EventRecorder.dumpToString());
}
}
@Test @Repeat(2) @DirtiesContext
public void testTransactionalMethod() throws SQLException {
bean.doSomethingTransactional(1);
bean.verifyEvents(1);
}
}