diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/OperationServiceIntegrationTest.java')
-rw-r--r-- | src/test/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/OperationServiceIntegrationTest.java | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/OperationServiceIntegrationTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/OperationServiceIntegrationTest.java new file mode 100644 index 0000000..008787f --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/missioncontrol/service/OperationServiceIntegrationTest.java @@ -0,0 +1,99 @@ +package at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.service; + +import static org.junit.Assert.assertEquals; + +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.EmployeeDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.EmployeeDatabaseDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.OperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.OperationDatabaseDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.RegistrationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.RegistrationDatabaseDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.VehicleDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dao.VehicleDatabaseDAO; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Operation.Status; +import at.ac.tuwien.sepm.assignment.groupphase.missioncontrol.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.util.Helper; +import at.ac.tuwien.sepm.assignment.groupphase.util.JdbcTestCase; +import java.util.Set; +import org.dbunit.Assertion; +import org.dbunit.dataset.IDataSet; +import org.dbunit.dataset.ITable; +import org.junit.Test; + +public class OperationServiceIntegrationTest extends JdbcTestCase { + + private OperationService operationService; + + private Operation o; + + public OperationServiceIntegrationTest() { + EmployeeDAO employeeDAO = new EmployeeDatabaseDAO(getJdbcConnectionManager()); + RegistrationDAO registrationDAO = + new RegistrationDatabaseDAO(getJdbcConnectionManager(), employeeDAO); + VehicleDAO vehicleDAO = + new VehicleDatabaseDAO( + getJdbcConnectionManager(), (RegistrationDatabaseDAO) registrationDAO); + OperationDAO operationDAO = + new OperationDatabaseDAO( + getJdbcConnectionManager(), + vehicleDAO, + (RegistrationDatabaseDAO) registrationDAO); + + VehicleService vehicleService = new VehicleServiceImpl(vehicleDAO); + + operationService = new OperationServiceImpl(operationDAO, vehicleDAO, vehicleService); + + Vehicle v1 = + Vehicle.builder() + .id(1) + .name("RTW-1") + .constructionType(Vehicle.ConstructionType.HOCHDACH) + .type(Vehicle.VehicleType.RTW) + .status(Vehicle.Status.FREI_FUNK) + .hasNef(true) + .build(); + + Vehicle v2 = v1.toBuilder().id(2).build(); + Vehicle v3 = v1.toBuilder().id(3).build(); + + o = + Operation.builder() + .opCode("RD-2B0M") + .status(Status.ACTIVE) + .vehicles(Set.of(v1, v2, v3)) + .destination("New destination") + .additionalInfo("New information") + .build(); + } + + @Override + protected IDataSet getDataSet() throws Exception { + return getDataSet("operationDAOUpdateSetup.xml"); + } + + @Test + public void addValidOperation() throws Exception { + + long id = operationService.add(o); + assertEquals(2, id); + + String tableName = "Operation"; + String[] excludedColumns = new String[] {"created"}; + + ITable actual = + Helper.getActualFilteredTableData(getConnection(), tableName, excludedColumns); + ITable expected = + Helper.getExpectedFilteredTableData( + tableName, excludedColumns, "operationDAOAddOperation.xml"); + + Assertion.assertEquals(expected, actual); + } + + @Test(expected = InvalidOperationException.class) + public void addInvalidOperation() throws InvalidOperationException, ServiceException { + operationService.add(o.toBuilder().opCode("").build()); + } +} |