Commit a2b0e68e4dd0903193124a9337275771362159a9
1 parent
7b8c96ca
Exists in
master
Adicionado novos testes no JDBCTransaction
Showing
5 changed files
with
197 additions
and
1 deletions
Show diff stats
| @@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
| 1 | +package transaction; | ||
| 2 | + | ||
| 3 | +import java.sql.Connection; | ||
| 4 | +import java.sql.PreparedStatement; | ||
| 5 | +import java.sql.Statement; | ||
| 6 | + | ||
| 7 | +import javax.inject.Inject; | ||
| 8 | + | ||
| 9 | +import br.gov.frameworkdemoiselle.annotation.Name; | ||
| 10 | +import br.gov.frameworkdemoiselle.transaction.Transactional; | ||
| 11 | + | ||
| 12 | +public class DDL { | ||
| 13 | + | ||
| 14 | + @Name("conn1") | ||
| 15 | + @Inject | ||
| 16 | + private Connection connection; | ||
| 17 | + | ||
| 18 | + @Transactional | ||
| 19 | + public void dropAndCreate() throws Exception { | ||
| 20 | + dropTable(); | ||
| 21 | + createTable(); | ||
| 22 | + } | ||
| 23 | + | ||
| 24 | + private void dropTable() throws Exception { | ||
| 25 | + | ||
| 26 | + Statement st = connection.createStatement(); | ||
| 27 | + | ||
| 28 | + try { | ||
| 29 | + String sql = "DROP TABLE myentity"; | ||
| 30 | + st.executeUpdate(sql); | ||
| 31 | + st.close(); | ||
| 32 | + } catch (Exception e) { | ||
| 33 | + | ||
| 34 | + } | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + private void createTable() throws Exception { | ||
| 38 | + StringBuffer sql = new StringBuffer(); | ||
| 39 | + | ||
| 40 | + sql.append("CREATE TABLE myentity ( "); | ||
| 41 | + sql.append(" id int NOT NULL, "); | ||
| 42 | + sql.append(" description varchar(10) NOT NULL, "); | ||
| 43 | + sql.append("CONSTRAINT myentity_pk PRIMARY KEY (id) "); | ||
| 44 | + sql.append("); "); | ||
| 45 | + | ||
| 46 | + PreparedStatement pstmt = connection.prepareStatement(sql.toString()); | ||
| 47 | + pstmt.execute(); | ||
| 48 | + pstmt.close(); | ||
| 49 | + } | ||
| 50 | +} |
impl/extension/jdbc/src/test/java/transaction/MyEntity1.java
0 → 100644
| @@ -0,0 +1,25 @@ | @@ -0,0 +1,25 @@ | ||
| 1 | +package transaction; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | +public class MyEntity1 { | ||
| 5 | + | ||
| 6 | + private int id; | ||
| 7 | + | ||
| 8 | + private String description; | ||
| 9 | + | ||
| 10 | + public int getId() { | ||
| 11 | + return id; | ||
| 12 | + } | ||
| 13 | + | ||
| 14 | + public void setId(int id) { | ||
| 15 | + this.id = id; | ||
| 16 | + } | ||
| 17 | + | ||
| 18 | + public String getDescription() { | ||
| 19 | + return description; | ||
| 20 | + } | ||
| 21 | + | ||
| 22 | + public void setDescription(String description) { | ||
| 23 | + this.description = description; | ||
| 24 | + } | ||
| 25 | +} |
impl/extension/jdbc/src/test/java/transaction/TransactionTest.java
| @@ -37,21 +37,76 @@ | @@ -37,21 +37,76 @@ | ||
| 37 | 37 | ||
| 38 | package transaction; | 38 | package transaction; |
| 39 | 39 | ||
| 40 | +import javax.enterprise.context.RequestScoped; | ||
| 41 | +import javax.inject.Inject; | ||
| 42 | + | ||
| 43 | +import junit.framework.Assert; | ||
| 44 | + | ||
| 40 | import org.jboss.arquillian.container.test.api.Deployment; | 45 | import org.jboss.arquillian.container.test.api.Deployment; |
| 41 | import org.jboss.arquillian.junit.Arquillian; | 46 | import org.jboss.arquillian.junit.Arquillian; |
| 42 | import org.jboss.shrinkwrap.api.spec.WebArchive; | 47 | import org.jboss.shrinkwrap.api.spec.WebArchive; |
| 48 | +import org.junit.After; | ||
| 49 | +import org.junit.Before; | ||
| 50 | +import org.junit.Test; | ||
| 43 | import org.junit.runner.RunWith; | 51 | import org.junit.runner.RunWith; |
| 44 | 52 | ||
| 45 | import test.Tests; | 53 | import test.Tests; |
| 54 | +import br.gov.frameworkdemoiselle.internal.context.ContextManager; | ||
| 55 | +import br.gov.frameworkdemoiselle.internal.context.ManagedContext; | ||
| 46 | 56 | ||
| 47 | @RunWith(Arquillian.class) | 57 | @RunWith(Arquillian.class) |
| 48 | public class TransactionTest { | 58 | public class TransactionTest { |
| 49 | 59 | ||
| 60 | + private static String PATH = "src/test/resources/transaction"; | ||
| 61 | + | ||
| 62 | + @Inject | ||
| 63 | + private TransactionalBusiness tb; | ||
| 50 | 64 | ||
| 51 | @Deployment | 65 | @Deployment |
| 52 | public static WebArchive createDeployment() { | 66 | public static WebArchive createDeployment() { |
| 53 | WebArchive deployment = Tests.createDeployment(TransactionTest.class); | 67 | WebArchive deployment = Tests.createDeployment(TransactionTest.class); |
| 68 | + deployment.addAsResource(Tests.createFileAsset(PATH + "/demoiselle.properties"), "demoiselle.properties"); | ||
| 54 | return deployment; | 69 | return deployment; |
| 55 | } | 70 | } |
| 56 | 71 | ||
| 72 | +// @Before | ||
| 73 | +// public void init() throws Exception{ | ||
| 74 | +//// transaction = context.getCurrentTransaction(); | ||
| 75 | +//// ddl.dropAndCreate(); | ||
| 76 | +// } | ||
| 77 | + | ||
| 78 | +// @Before | ||
| 79 | +// public void activeContext() { | ||
| 80 | +// ContextManager.activate(ManagedContext.class, RequestScoped.class); | ||
| 81 | +// } | ||
| 82 | +// | ||
| 83 | +// @After | ||
| 84 | +// public void deactiveContext() { | ||
| 85 | +// ContextManager.deactivate(ManagedContext.class, RequestScoped.class); | ||
| 86 | +// } | ||
| 87 | + | ||
| 88 | + @Test | ||
| 89 | + public void isTransactionActiveWithInterceptor(){ | ||
| 90 | + Assert.assertTrue(tb.isTransactionActiveWithInterceptor()); | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + @Test | ||
| 94 | + public void isTransactionActiveWithoutInterceptor(){ | ||
| 95 | + Assert.assertFalse(tb.isTransactionActiveWithoutInterceptor()); | ||
| 96 | + } | ||
| 97 | + | ||
| 98 | +// @Test | ||
| 99 | +// public void verifyIfTransactionIsJdbcTransaction() { | ||
| 100 | +// assertEquals(transaction.getClass(), JDBCTransaction.class); | ||
| 101 | +// } | ||
| 102 | +// | ||
| 103 | +// @Test | ||
| 104 | +// public void verifyIfTransactionIsActive() { | ||
| 105 | +// assertTrue(!transaction.isActive()); | ||
| 106 | +// transaction.begin(); | ||
| 107 | +// assertTrue(transaction.isActive()); | ||
| 108 | +// } | ||
| 109 | + | ||
| 110 | + | ||
| 57 | } | 111 | } |
| 112 | + | ||
| 58 | \ No newline at end of file | 113 | \ No newline at end of file |
impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java
0 → 100644
| @@ -0,0 +1,63 @@ | @@ -0,0 +1,63 @@ | ||
| 1 | +package transaction; | ||
| 2 | + | ||
| 3 | +import java.sql.Connection; | ||
| 4 | +import java.sql.ResultSet; | ||
| 5 | +import java.sql.Statement; | ||
| 6 | + | ||
| 7 | +import javax.inject.Inject; | ||
| 8 | + | ||
| 9 | +import br.gov.frameworkdemoiselle.annotation.Name; | ||
| 10 | +import br.gov.frameworkdemoiselle.transaction.TransactionContext; | ||
| 11 | +import br.gov.frameworkdemoiselle.transaction.Transactional; | ||
| 12 | + | ||
| 13 | +public class TransactionalBusiness { | ||
| 14 | + | ||
| 15 | + @Inject | ||
| 16 | + private MyEntity1 m1; | ||
| 17 | + | ||
| 18 | + @Inject | ||
| 19 | + @Name("conn1") | ||
| 20 | + private Connection conn1; | ||
| 21 | + | ||
| 22 | + @Inject | ||
| 23 | + private TransactionContext transactionContext; | ||
| 24 | + | ||
| 25 | + @Transactional | ||
| 26 | + public boolean isTransactionActiveWithInterceptor(){ | ||
| 27 | + return transactionContext.getCurrentTransaction().isActive(); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + public boolean isTransactionActiveWithoutInterceptor(){ | ||
| 31 | + return transactionContext.getCurrentTransaction().isActive(); | ||
| 32 | + } | ||
| 33 | + | ||
| 34 | + @Transactional | ||
| 35 | + public void insert() throws Exception { | ||
| 36 | + String sql = "insert into myentity (id, description) values (1, 'Entidade 1')"; | ||
| 37 | + Statement st = conn1.createStatement(); | ||
| 38 | + st.executeUpdate(sql); | ||
| 39 | + st.close(); | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + @Transactional | ||
| 43 | + public void delete() throws Exception { | ||
| 44 | + String sql = "delete from myentity where id = 1"; | ||
| 45 | + Statement st = conn1.createStatement(); | ||
| 46 | + st.executeUpdate(sql); | ||
| 47 | + st.close(); | ||
| 48 | + } | ||
| 49 | + | ||
| 50 | + @Transactional | ||
| 51 | + public MyEntity1 find(int id) throws Exception { | ||
| 52 | + String sql = "select * from myentity where id = " + id; | ||
| 53 | + Statement st = conn1.createStatement(); | ||
| 54 | + ResultSet rs = st.executeQuery(sql); | ||
| 55 | + rs.next(); | ||
| 56 | + m1.setId(rs.getInt(0)); | ||
| 57 | + m1.setDescription(rs.getString(1)); | ||
| 58 | + rs.close(); | ||
| 59 | + st.close(); | ||
| 60 | + return m1; | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | +} |
impl/extension/jdbc/src/test/resources/transaction/demoiselle.properties
| @@ -33,4 +33,7 @@ | @@ -33,4 +33,7 @@ | ||
| 33 | # ou escreva para a Fundação do Software Livre (FSF) Inc., | 33 | # ou escreva para a Fundação do Software Livre (FSF) Inc., |
| 34 | # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. | 34 | # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
| 35 | 35 | ||
| 36 | -frameworkdemoiselle.persistence.conn1.jndi.name=jdbc/arquillian | ||
| 37 | \ No newline at end of file | 36 | \ No newline at end of file |
| 37 | +frameworkdemoiselle.persistence.conn1.driver.class=org.hsqldb.jdbcDriver | ||
| 38 | +frameworkdemoiselle.persistence.conn1.url=jdbc:hsqldb:hsql | ||
| 39 | +frameworkdemoiselle.persistence.conn1.username=sa | ||
| 40 | +frameworkdemoiselle.persistence.conn1.password= | ||
| 38 | \ No newline at end of file | 41 | \ No newline at end of file |