aboutsummaryrefslogtreecommitdiffstats
path: root/src/test/java
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-05 15:49:41 +0200
committerFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 14:55:10 +0200
commit783aad0bd343a0c5a008ed1433d9958ea8e5e7a2 (patch)
treed274bfc6709c0ae04c2699e81f6c323dc710c8cd /src/test/java
parentf14c6eaa7173753cdca8cc44ae798e5700b99de3 (diff)
downloadsepm-groupproject-783aad0bd343a0c5a008ed1433d9958ea8e5e7a2.tar.gz
sepm-groupproject-783aad0bd343a0c5a008ed1433d9958ea8e5e7a2.tar.xz
sepm-groupproject-783aad0bd343a0c5a008ed1433d9958ea8e5e7a2.zip
Implement EmployeePersistenceTest with DBUnit
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java155
1 files changed, 155 insertions, 0 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java
new file mode 100644
index 0000000..f8fe0f3
--- /dev/null
+++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java
@@ -0,0 +1,155 @@
+package at.ac.tuwien.sepm.assignment.groupphase.employee;
+
+import static junit.framework.TestCase.fail;
+
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.EmployeeDAO;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.EmployeeDatabaseDao;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.EducationLevel;
+import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
+import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
+import java.nio.charset.Charset;
+import java.sql.SQLException;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.List;
+import org.dbunit.IDatabaseTester;
+import org.dbunit.JdbcDatabaseTester;
+import org.dbunit.dataset.DataSetException;
+import org.dbunit.dataset.IDataSet;
+import org.dbunit.dataset.xml.FlatXmlDataSetBuilder;
+import org.dbunit.operation.DatabaseOperation;
+import org.h2.tools.RunScript;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class EmployeePersistenceTest {
+
+ private static final String JDBC_DRIVER = org.h2.Driver.class.getName();
+ private static final String JDBC_URL = "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1";
+ private static final String USER = "";
+ private static final String PASSWORD = "";
+
+ private EmployeeDAO employeePersistence;
+
+ public EmployeePersistenceTest() throws PersistenceException {
+ employeePersistence = new EmployeeDatabaseDao(new JDBCConnectionManager(JDBC_URL));
+ }
+
+ @BeforeClass
+ public static void createSchema() throws SQLException {
+ RunScript.execute(
+ JDBC_URL,
+ USER,
+ PASSWORD,
+ "classpath:sql/database.sql",
+ Charset.forName("UTF8"),
+ false);
+ }
+
+ @Before
+ public void importDataSet() throws Exception {
+ IDataSet dataSet = readDataSet();
+ cleanlyInsert(dataSet);
+ }
+
+ private IDataSet readDataSet() throws DataSetException {
+ return new FlatXmlDataSetBuilder()
+ .build(
+ getClass()
+ .getClassLoader()
+ .getResourceAsStream("employeeServiceTestData.xml"));
+ }
+
+ private void cleanlyInsert(IDataSet dataSet) throws Exception {
+ IDatabaseTester databaseTester =
+ new JdbcDatabaseTester(JDBC_DRIVER, JDBC_URL, USER, PASSWORD);
+
+ databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
+ databaseTester.setDataSet(dataSet);
+ databaseTester.onSetup();
+ }
+
+ @Test
+ public void testListEmployees() {
+
+ try {
+ List<Employee> employees = employeePersistence.list();
+
+ Employee empOne =
+ Employee.builder()
+ .id(1)
+ .name("Adam")
+ .birthday(
+ LocalDate.parse(
+ "10.10.2010",
+ DateTimeFormatter.ofPattern("dd.MM.yyyy")))
+ .educationLevel(EducationLevel.RS)
+ .isDriver(true)
+ .isPilot(false)
+ .build();
+
+ Employee empTwo =
+ Employee.builder()
+ .id(2)
+ .name("Max")
+ .birthday(
+ LocalDate.parse(
+ "11.11.1990",
+ DateTimeFormatter.ofPattern("dd.MM.yyyy")))
+ .educationLevel(EducationLevel.NFS)
+ .isDriver(false)
+ .isPilot(false)
+ .build();
+
+ Employee empThree =
+ Employee.builder()
+ .id(3)
+ .name("Lisa")
+ .birthday(
+ LocalDate.parse(
+ "16.10.1999",
+ DateTimeFormatter.ofPattern("dd.MM.yyyy")))
+ .educationLevel(EducationLevel.NKI)
+ .isDriver(true)
+ .isPilot(false)
+ .build();
+
+ Assert.assertTrue(employees.contains(empOne));
+ Assert.assertTrue(employees.contains(empTwo));
+ Assert.assertTrue(employees.contains(empThree));
+ Assert.assertEquals(3, employees.size());
+
+ } catch (PersistenceException e) {
+ fail();
+ }
+ }
+
+ @Test
+ public void testEmployeeListNoElement() {
+
+ try {
+ List<Employee> employees = employeePersistence.list();
+
+ Employee empOne =
+ Employee.builder()
+ .id(10)
+ .name("Adam")
+ .birthday(
+ LocalDate.parse(
+ "10.10.2010",
+ DateTimeFormatter.ofPattern("dd.MM.yyyy")))
+ .educationLevel(EducationLevel.RS)
+ .isDriver(true)
+ .isPilot(false)
+ .build();
+
+ Assert.assertFalse(employees.contains(empOne));
+
+ } catch (PersistenceException e) {
+ fail();
+ }
+ }
+}