summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
authorFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 14:56:27 +0200
committerFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 14:56:27 +0200
commite7e7c52e3c8f445d95aaaad1b285d49d075623e3 (patch)
tree59758513019c499577a70f4e9b72b5b43608ec83 /src/test
parent12302ff88604440cac2257741b4502b9b173d708 (diff)
parent783aad0bd343a0c5a008ed1433d9958ea8e5e7a2 (diff)
downloadsepm-groupproject-e7e7c52e3c8f445d95aaaad1b285d49d075623e3.tar.gz
sepm-groupproject-e7e7c52e3c8f445d95aaaad1b285d49d075623e3.tar.xz
sepm-groupproject-e7e7c52e3c8f445d95aaaad1b285d49d075623e3.zip
Merge branch 'employee_list' into fahrzeug_anmelden
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/at/ac/tuwien/sepm/assignment/groupphase/employee/EmployeePersistenceTest.java155
-rw-r--r--src/test/resources/employeeServiceTestData.xml12
2 files changed, 167 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();
+ }
+ }
+}
diff --git a/src/test/resources/employeeServiceTestData.xml b/src/test/resources/employeeServiceTestData.xml
new file mode 100644
index 0000000..c21fde6
--- /dev/null
+++ b/src/test/resources/employeeServiceTestData.xml
@@ -0,0 +1,12 @@
+<dataset>
+ <EmployeeVersion id="10" name="Adam" birthday="2010-10-10" educationlevel="RS" isDriver="true"
+ isPilot="false"/>
+ <EmployeeVersion id="20" name="Max" birthday="1990-11-11" educationlevel="NFS" isDriver="false"
+ isPilot="false"/>
+ <EmployeeVersion id="30" name="Lisa" birthday="1999-10-16" educationlevel="NKI" isDriver="true"
+ isPilot="false"/>
+
+ <Employee id="1" version="10" />
+ <Employee id="2" version="20" />
+ <Employee id="3" version="30" />
+</dataset> \ No newline at end of file