package gov.nysenate.openleg.config;
import gov.nysenate.openleg.BaseTests;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.transaction.TransactionConfiguration;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@TransactionConfiguration(defaultRollback = false)
@Transactional
public class TransactionConfigTests extends BaseTests
{
private static final
Logger logger = LoggerFactory.getLogger(TransactionConfigTests.class);
@Autowired
private JdbcTemplate jdbc;
@Transactional(rollbackFor = RuntimeException.class)
public void testTransaction(int c) {
jdbc.update("insert into lbdc.bill_daybreak values(1, 'STEST', " + c + ")");
logger.info("WROTE TO DB");
throw new RuntimeException("ROLLBACK!");
}
public void moose(int c) {
logger.info("THROWING EXCEPTION");
}
@Test
@Transactional
public void testTransactionMethod() throws Exception {
testTransaction(3212);
}
@Transactional(propagation = Propagation.REQUIRED)
@Rollback
private void hah(int i) {
testTransaction(i);
moose(i);
}
}