Refactors Department management

Creates a Departments class with basic
Department management with the EntityManager.
parent c5dc318b
package dgpena.siexample.persistence;
import javax.persistence.EntityManager;
public class Departments {
private EntityManager em;
public Departments(EntityManager em) {
this.em = em;
}
public void addNewDepartment(Department d) {
em.getTransaction().begin();
em.persist(d);
em.getTransaction().commit();
}
public Department findById(int id) {
return em.find(Department.class, id);
}
}
...@@ -13,7 +13,7 @@ import javax.persistence.Persistence; ...@@ -13,7 +13,7 @@ import javax.persistence.Persistence;
import org.junit.BeforeClass; import org.junit.BeforeClass;
import org.junit.Test; import org.junit.Test;
public class DepartmentTest extends SQLBasedTest { public class DepartmentsTest extends SQLBasedTest {
private static EntityManagerFactory emf; private static EntityManagerFactory emf;
...@@ -23,38 +23,33 @@ public class DepartmentTest extends SQLBasedTest { ...@@ -23,38 +23,33 @@ public class DepartmentTest extends SQLBasedTest {
} }
@Test @Test
public void testCreateDepartment() throws Exception { public void testAddNewDepartment() throws Exception {
EntityManager em = emf.createEntityManager();
Department d = new Department(); Department d = new Department();
d.setName("finanzas"); d.setName("finanzas");
em.getTransaction().begin(); EntityManager em = emf.createEntityManager();
em.persist(d); Departments depts = new Departments(em);
em.getTransaction().commit(); depts.addNewDepartment(d);
// check in the DB using JDBC // check in the DB using JDBC
int deptId = d.getId(); int deptId = d.getId();
Statement statement = jdbcConnection.createStatement(); Statement statement = jdbcConnection.createStatement();
ResultSet rs = statement.executeQuery("SELECT COUNT(*) as total FROM Department d where d.id = "+deptId); ResultSet rs = statement.executeQuery("SELECT COUNT(*) as total FROM Department d where d.id = "+deptId);
rs.next(); rs.next();
assertEquals(1, rs.getInt("total")); assertEquals(1, rs.getInt("total"));
} }
@Test @Test
public void testFindDepartment() throws SQLException { public void testFindById() throws SQLException {
// insert a department previously with JDBC // insert a department previously with JDBC
Statement statement = jdbcConnection.createStatement(); Statement statement = jdbcConnection.createStatement();
statement.executeUpdate("INSERT INTO Department(name) values('finanzas')", Statement.RETURN_GENERATED_KEYS); statement.executeUpdate("INSERT INTO Department(name) values('finanzas')", Statement.RETURN_GENERATED_KEYS);
int deptId = getLastInsertedId(statement); int deptId = getLastInsertedId(statement);
EntityManager em = emf.createEntityManager(); EntityManager em = emf.createEntityManager();
Departments depts = new Departments(em);
Department d = em.find(Department.class, deptId); Department d = depts.findById(deptId);
assertEquals(deptId, d.getId()); assertEquals(deptId, d.getId());
assertEquals("finanzas", d.getName()); assertEquals("finanzas", d.getName());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment