From a2b0e68e4dd0903193124a9337275771362159a9 Mon Sep 17 00:00:00 2001 From: lusabo Date: Tue, 27 Aug 2013 08:12:36 -0300 Subject: [PATCH] Adicionado novos testes no JDBCTransaction --- impl/extension/jdbc/src/test/java/transaction/DDL.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/jdbc/src/test/java/transaction/MyEntity1.java | 25 +++++++++++++++++++++++++ impl/extension/jdbc/src/test/java/transaction/TransactionTest.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties | 5 ++++- 5 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 impl/extension/jdbc/src/test/java/transaction/DDL.java create mode 100644 impl/extension/jdbc/src/test/java/transaction/MyEntity1.java create mode 100644 impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java diff --git a/impl/extension/jdbc/src/test/java/transaction/DDL.java b/impl/extension/jdbc/src/test/java/transaction/DDL.java new file mode 100644 index 0000000..0aa6774 --- /dev/null +++ b/impl/extension/jdbc/src/test/java/transaction/DDL.java @@ -0,0 +1,50 @@ +package transaction; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.Statement; + +import javax.inject.Inject; + +import br.gov.frameworkdemoiselle.annotation.Name; +import br.gov.frameworkdemoiselle.transaction.Transactional; + +public class DDL { + + @Name("conn1") + @Inject + private Connection connection; + + @Transactional + public void dropAndCreate() throws Exception { + dropTable(); + createTable(); + } + + private void dropTable() throws Exception { + + Statement st = connection.createStatement(); + + try { + String sql = "DROP TABLE myentity"; + st.executeUpdate(sql); + st.close(); + } catch (Exception e) { + + } + } + + private void createTable() throws Exception { + StringBuffer sql = new StringBuffer(); + + sql.append("CREATE TABLE myentity ( "); + sql.append(" id int NOT NULL, "); + sql.append(" description varchar(10) NOT NULL, "); + sql.append("CONSTRAINT myentity_pk PRIMARY KEY (id) "); + sql.append("); "); + + PreparedStatement pstmt = connection.prepareStatement(sql.toString()); + pstmt.execute(); + pstmt.close(); + } +} diff --git a/impl/extension/jdbc/src/test/java/transaction/MyEntity1.java b/impl/extension/jdbc/src/test/java/transaction/MyEntity1.java new file mode 100644 index 0000000..9863d3d --- /dev/null +++ b/impl/extension/jdbc/src/test/java/transaction/MyEntity1.java @@ -0,0 +1,25 @@ +package transaction; + + +public class MyEntity1 { + + private int id; + + private String description; + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/impl/extension/jdbc/src/test/java/transaction/TransactionTest.java b/impl/extension/jdbc/src/test/java/transaction/TransactionTest.java index 971590b..a301ac9 100644 --- a/impl/extension/jdbc/src/test/java/transaction/TransactionTest.java +++ b/impl/extension/jdbc/src/test/java/transaction/TransactionTest.java @@ -37,21 +37,76 @@ package transaction; +import javax.enterprise.context.RequestScoped; +import javax.inject.Inject; + +import junit.framework.Assert; + import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.spec.WebArchive; +import org.junit.After; +import org.junit.Before; +import org.junit.Test; import org.junit.runner.RunWith; import test.Tests; +import br.gov.frameworkdemoiselle.internal.context.ContextManager; +import br.gov.frameworkdemoiselle.internal.context.ManagedContext; @RunWith(Arquillian.class) public class TransactionTest { + private static String PATH = "src/test/resources/transaction"; + + @Inject + private TransactionalBusiness tb; @Deployment public static WebArchive createDeployment() { WebArchive deployment = Tests.createDeployment(TransactionTest.class); + deployment.addAsResource(Tests.createFileAsset(PATH + "/demoiselle.properties"), "demoiselle.properties"); return deployment; } +// @Before +// public void init() throws Exception{ +//// transaction = context.getCurrentTransaction(); +//// ddl.dropAndCreate(); +// } + +// @Before +// public void activeContext() { +// ContextManager.activate(ManagedContext.class, RequestScoped.class); +// } +// +// @After +// public void deactiveContext() { +// ContextManager.deactivate(ManagedContext.class, RequestScoped.class); +// } + + @Test + public void isTransactionActiveWithInterceptor(){ + Assert.assertTrue(tb.isTransactionActiveWithInterceptor()); + } + + @Test + public void isTransactionActiveWithoutInterceptor(){ + Assert.assertFalse(tb.isTransactionActiveWithoutInterceptor()); + } + +// @Test +// public void verifyIfTransactionIsJdbcTransaction() { +// assertEquals(transaction.getClass(), JDBCTransaction.class); +// } +// +// @Test +// public void verifyIfTransactionIsActive() { +// assertTrue(!transaction.isActive()); +// transaction.begin(); +// assertTrue(transaction.isActive()); +// } + + } + \ No newline at end of file diff --git a/impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java b/impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java new file mode 100644 index 0000000..1a7bcea --- /dev/null +++ b/impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java @@ -0,0 +1,63 @@ +package transaction; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; + +import javax.inject.Inject; + +import br.gov.frameworkdemoiselle.annotation.Name; +import br.gov.frameworkdemoiselle.transaction.TransactionContext; +import br.gov.frameworkdemoiselle.transaction.Transactional; + +public class TransactionalBusiness { + + @Inject + private MyEntity1 m1; + + @Inject + @Name("conn1") + private Connection conn1; + + @Inject + private TransactionContext transactionContext; + + @Transactional + public boolean isTransactionActiveWithInterceptor(){ + return transactionContext.getCurrentTransaction().isActive(); + } + + public boolean isTransactionActiveWithoutInterceptor(){ + return transactionContext.getCurrentTransaction().isActive(); + } + + @Transactional + public void insert() throws Exception { + String sql = "insert into myentity (id, description) values (1, 'Entidade 1')"; + Statement st = conn1.createStatement(); + st.executeUpdate(sql); + st.close(); + } + + @Transactional + public void delete() throws Exception { + String sql = "delete from myentity where id = 1"; + Statement st = conn1.createStatement(); + st.executeUpdate(sql); + st.close(); + } + + @Transactional + public MyEntity1 find(int id) throws Exception { + String sql = "select * from myentity where id = " + id; + Statement st = conn1.createStatement(); + ResultSet rs = st.executeQuery(sql); + rs.next(); + m1.setId(rs.getInt(0)); + m1.setDescription(rs.getString(1)); + rs.close(); + st.close(); + return m1; + } + +} diff --git a/impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties b/impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties index ea06112..354503e 100644 --- a/impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties +++ b/impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties @@ -33,4 +33,7 @@ # ou escreva para a Fundação do Software Livre (FSF) Inc., # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. -frameworkdemoiselle.persistence.conn1.jndi.name=jdbc/arquillian \ No newline at end of file +frameworkdemoiselle.persistence.conn1.driver.class=org.hsqldb.jdbcDriver +frameworkdemoiselle.persistence.conn1.url=jdbc:hsqldb:hsql +frameworkdemoiselle.persistence.conn1.username=sa +frameworkdemoiselle.persistence.conn1.password= \ No newline at end of file -- libgit2 0.21.2