diff options
Diffstat (limited to 'src/test/java/at/ac/tuwien/sepm')
3 files changed, 434 insertions, 0 deletions
diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java new file mode 100644 index 0000000..575588e --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationPersistenceTest.java @@ -0,0 +1,128 @@ +package at.ac.tuwien.sepm.assignment.groupphase.operation; + +import static junit.framework.TestCase.fail; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.DBOperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.OperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType; +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.Instant; +import java.util.List; +import org.h2.tools.RunScript; +import org.junit.BeforeClass; +import org.junit.Test; + +public class OperationPersistenceTest { + +    private final OperationDAO operationDAO = +            new DBOperationDAO(new JDBCConnectionManager("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")); + +    @BeforeClass +    public static void createSchema() throws SQLException { +        RunScript.execute( +                "jdbc:h2:mem:test;DB_CLOSE_DELAY=-1", +                "", +                "", +                "classpath:sql/database.sql", +                Charset.forName("UTF8"), +                false); +    } + +    @Test +    public void addOperationTest() { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle)) +                        .build(); +        try { +            operationDAO.add(operation); +        } catch (PersistenceException e) { +            fail(); +        } +    } + +    /*@Test(expected = PersistenceException.class) +    public void addFaultyOperationTest() throws PersistenceException { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle)) +                        .build(); +        operationDAO.add(operation); +    }*/ + +    @Test(expected = PersistenceException.class) +    public void addFaultyOperation1Test() throws PersistenceException { +        operationDAO.add(null); +    } + +    @Test(expected = PersistenceException.class) +    public void addFaultyOperation2Test() throws PersistenceException { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination( +                                "Wiednerstraße 888, 1010 Wien Wiednerstraße 888, 1010 Wien Wiednerstraße 888, 1010 Wien Wiednerstraße 888, 1010 Wien Wiednerstraße 888, 1010 Wien ") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle)) +                        .build(); +        operationDAO.add(operation); +    } + +    @Test(expected = PersistenceException.class) +    public void addConnectionTest() throws PersistenceException { +        operationDAO.connectVehicleToOperation(-1, 0); +    } + +    // TODO: ADD CONNECTION TESTS +    // KOMMT ID ZURÜCK? +} diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java new file mode 100644 index 0000000..7ffe135 --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceComponentTest.java @@ -0,0 +1,151 @@ +package at.ac.tuwien.sepm.assignment.groupphase.operation; + +import static junit.framework.TestCase.fail; +import static org.hamcrest.CoreMatchers.is; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.DBOperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.OperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationServiceImpl; +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.util.JDBCConnectionManager; +import java.time.Instant; +import java.util.List; +import org.junit.Assert; +import org.junit.Test; + +public class OperationServiceComponentTest { + +    private final OperationDAO operationDAO = +            new DBOperationDAO(new JDBCConnectionManager("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1")); +    private final OperationService operationService = new OperationServiceImpl(operationDAO); + +    @Test +    public void addOperationTest() { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle)) +                        .build(); +        try { +            // TODO: OPERATION DOES NOT WORK +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (InvalidOperationException | ServiceException e) { +            fail(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperationTest() throws InvalidOperationException { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); +        Vehicle vehicle1 = +                Vehicle.builder() +                        .status(Vehicle.Status.ABGEMELDET) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle, vehicle1)) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            fail(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation2Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation3Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation4Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("") +                        .created(Instant.now()) +                        .destination("Römergasse 7, 2500 Baden") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } +} diff --git a/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceUnitTest.java b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceUnitTest.java new file mode 100644 index 0000000..fc10553 --- /dev/null +++ b/src/test/java/at/ac/tuwien/sepm/assignment/groupphase/operation/OperationServiceUnitTest.java @@ -0,0 +1,155 @@ +package at.ac.tuwien.sepm.assignment.groupphase.operation; + +import static junit.framework.TestCase.fail; +import static org.hamcrest.CoreMatchers.is; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao.OperationDAO; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Severity; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Operation.Status; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.ConstructionType; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Vehicle.VehicleType; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationService; +import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.service.OperationServiceImpl; +import at.ac.tuwien.sepm.assignment.groupphase.exception.InvalidOperationException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException; +import at.ac.tuwien.sepm.assignment.groupphase.exception.ServiceException; +import java.time.Instant; +import java.util.List; +import org.junit.Assert; +import org.junit.Test; + +public class OperationServiceUnitTest { +    private final OperationDAO operationDAO = mock(OperationDAO.class); +    private final OperationService operationService = new OperationServiceImpl(operationDAO); + +    @Test +    public void addOperationTest() { +        try { +            when(operationDAO.add(any())).thenReturn(1L); +        } catch (PersistenceException e) { +            fail(); +        } +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle)) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (InvalidOperationException | ServiceException e) { +            fail(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperationTest() throws InvalidOperationException { +        Vehicle vehicle = +                Vehicle.builder() +                        .status(Vehicle.Status.FREI_FUNK) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); +        Vehicle vehicle1 = +                Vehicle.builder() +                        .status(Vehicle.Status.ABGEMELDET) +                        .constructionType(ConstructionType.HOCHDACH) +                        .name("BKTW_123") +                        .hasNef(true) +                        .type(VehicleType.BKTW) +                        .build(); + +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of(vehicle, vehicle1)) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            fail(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation2Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("Wiedner Hauptstraße 35, Wien") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation3Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("ALP-95E7") +                        .created(Instant.now()) +                        .destination("") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } + +    @Test(expected = InvalidOperationException.class) +    public void addFaultyOperation4Test() throws InvalidOperationException { +        Operation operation = +                Operation.builder() +                        .status(Status.ACTIVE) +                        .opCode("") +                        .created(Instant.now()) +                        .destination("Römergasse 7, 2500 Baden") +                        .additionalInfo("HTU Wien") +                        .severity(Severity.B) +                        .vehicles(List.of()) +                        .build(); +        try { +            Assert.assertThat(operationService.add(operation), is(1L)); +        } catch (ServiceException e) { +            e.printStackTrace(); +        } +    } +}  | 
