From d374deb3f962197d3ee8e55cf9633b05990f144e Mon Sep 17 00:00:00 2001 From: dgpena Date: Thu, 9 Nov 2017 19:00:51 +0100 Subject: [PATCH] Refactors Department management Creates a Departments class with basic Department management with the EntityManager. --- .../siexample/persistence/Departments.java | 22 ++++++++++++++++++ ...partmentTest.java => DepartmentsTest.java} | 23 ++++++++----------- 2 files changed, 31 insertions(+), 14 deletions(-) create mode 100644 src/main/java/dgpena/siexample/persistence/Departments.java rename src/test/java/dgpena/siexample/persistence/{DepartmentTest.java => DepartmentsTest.java} (80%) diff --git a/src/main/java/dgpena/siexample/persistence/Departments.java b/src/main/java/dgpena/siexample/persistence/Departments.java new file mode 100644 index 0000000..23b757c --- /dev/null +++ b/src/main/java/dgpena/siexample/persistence/Departments.java @@ -0,0 +1,22 @@ +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); + } +} diff --git a/src/test/java/dgpena/siexample/persistence/DepartmentTest.java b/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java similarity index 80% rename from src/test/java/dgpena/siexample/persistence/DepartmentTest.java rename to src/test/java/dgpena/siexample/persistence/DepartmentsTest.java index 85bcf83..9faa3e8 100644 --- a/src/test/java/dgpena/siexample/persistence/DepartmentTest.java +++ b/src/test/java/dgpena/siexample/persistence/DepartmentsTest.java @@ -13,7 +13,7 @@ import javax.persistence.Persistence; import org.junit.BeforeClass; import org.junit.Test; -public class DepartmentTest extends SQLBasedTest { +public class DepartmentsTest extends SQLBasedTest { private static EntityManagerFactory emf; @@ -23,38 +23,33 @@ public class DepartmentTest extends SQLBasedTest { } @Test - public void testCreateDepartment() throws Exception { - EntityManager em = emf.createEntityManager(); + public void testAddNewDepartment() throws Exception { Department d = new Department(); d.setName("finanzas"); - - em.getTransaction().begin(); - em.persist(d); - em.getTransaction().commit(); + + EntityManager em = emf.createEntityManager(); + Departments depts = new Departments(em); + depts.addNewDepartment(d); // check in the DB using JDBC int deptId = d.getId(); - - Statement statement = jdbcConnection.createStatement(); ResultSet rs = statement.executeQuery("SELECT COUNT(*) as total FROM Department d where d.id = "+deptId); rs.next(); - assertEquals(1, rs.getInt("total")); } @Test - public void testFindDepartment() throws SQLException { + public void testFindById() throws SQLException { // insert a department previously with JDBC Statement statement = jdbcConnection.createStatement(); statement.executeUpdate("INSERT INTO Department(name) values('finanzas')", Statement.RETURN_GENERATED_KEYS); int deptId = getLastInsertedId(statement); - EntityManager em = emf.createEntityManager(); - - Department d = em.find(Department.class, deptId); + Departments depts = new Departments(em); + Department d = depts.findById(deptId); assertEquals(deptId, d.getId()); assertEquals("finanzas", d.getName()); -- 2.18.1