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 @@ |
| 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 @@ |
| 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 | 37 | |
| 38 | 38 | package transaction; |
| 39 | 39 | |
| 40 | +import javax.enterprise.context.RequestScoped; | |
| 41 | +import javax.inject.Inject; | |
| 42 | + | |
| 43 | +import junit.framework.Assert; | |
| 44 | + | |
| 40 | 45 | import org.jboss.arquillian.container.test.api.Deployment; |
| 41 | 46 | import org.jboss.arquillian.junit.Arquillian; |
| 42 | 47 | import org.jboss.shrinkwrap.api.spec.WebArchive; |
| 48 | +import org.junit.After; | |
| 49 | +import org.junit.Before; | |
| 50 | +import org.junit.Test; | |
| 43 | 51 | import org.junit.runner.RunWith; |
| 44 | 52 | |
| 45 | 53 | import test.Tests; |
| 54 | +import br.gov.frameworkdemoiselle.internal.context.ContextManager; | |
| 55 | +import br.gov.frameworkdemoiselle.internal.context.ManagedContext; | |
| 46 | 56 | |
| 47 | 57 | @RunWith(Arquillian.class) |
| 48 | 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 | 65 | @Deployment |
| 52 | 66 | public static WebArchive createDeployment() { |
| 53 | 67 | WebArchive deployment = Tests.createDeployment(TransactionTest.class); |
| 68 | + deployment.addAsResource(Tests.createFileAsset(PATH + "/demoiselle.properties"), "demoiselle.properties"); | |
| 54 | 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 | 113 | \ No newline at end of file | ... | ... |
impl/extension/jdbc/src/test/java/transaction/TransactionalBusiness.java
0 → 100644
| ... | ... | @@ -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 | 33 | # ou escreva para a Fundação do Software Livre (FSF) Inc., |
| 34 | 34 | # 51 Franklin St, Fifth Floor, Boston, MA 02111-1301, USA. |
| 35 | 35 | |
| 36 | -frameworkdemoiselle.persistence.conn1.jndi.name=jdbc/arquillian | |
| 37 | 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 | 41 | \ No newline at end of file | ... | ... |