diff --git a/pom.xml b/pom.xml index 8be772e2cc446c442adfad468065958e3fcae22b..4b034fb883bc3c355399eeede1556e881e5e23b8 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ <modules> <module>resources-management</module> <module>flight-management</module> - <module>steward-management</module> + <module>steward-management</module> </modules> <parent> diff --git a/resources-management/pom.xml b/resources-management/pom.xml index 6c78d36ca64d5cee916cc2f585eca4778d286fde..25b90cf10165be1bbebe43715723b20288c2d49f 100644 --- a/resources-management/pom.xml +++ b/resources-management/pom.xml @@ -59,6 +59,17 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + </execution> + </executions> + <configuration> + <argLine>-Dspring.profiles.active=test</argLine> + </configuration> </plugin> </plugins> </build> @@ -141,6 +152,12 @@ <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> + + <dependency> + <groupId>com.h2database</groupId> + <artifactId>h2</artifactId> + <scope>test</scope> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/controller/AirplaneControllerTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplaneControllerTest.java similarity index 98% rename from resources-management/src/test/java/cz/muni/fi/pa165/controller/AirplaneControllerTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplaneControllerTest.java index b0d38462a8fabe3428cedd05c5990175a9a56dc8..08b0d6fbb3d251496e7aa105387961c6f3dc7463 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/controller/AirplaneControllerTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplaneControllerTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.controller; +package cz.muni.fi.pa165.resources.controller; import cz.muni.fi.pa165.generated.model.AirplaneDTO; import cz.muni.fi.pa165.resources.controller.AirplanesController; diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplanesControllerIT.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplanesControllerIT.java new file mode 100644 index 0000000000000000000000000000000000000000..51d058cffc100e3a37c17006f46d26123f7ea3a7 --- /dev/null +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/AirplanesControllerIT.java @@ -0,0 +1,74 @@ +package cz.muni.fi.pa165.resources.controller; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import cz.muni.fi.pa165.generated.model.AirplaneDTO; +import cz.muni.fi.pa165.resources.data.repository.AirplaneRepository; +import cz.muni.fi.pa165.resources.model.Airplane; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.servlet.MockMvc; + +import java.util.List; + +import static org.assertj.core.api.AssertionsForClassTypes.assertThat; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@ActiveProfiles("test") +@SpringBootTest +@AutoConfigureMockMvc +public class AirplanesControllerIT { + private final Airplane TEST_AIRPLANE1 = new Airplane(); + private final Airplane TEST_AIRPLANE2 = new Airplane(); + + private final ObjectMapper objectMapper = new ObjectMapper(); + + @Autowired + private AirplaneRepository airplaneRepository; + + @Autowired + private MockMvc mockMvc; + + @BeforeEach + public void setup() { + TEST_AIRPLANE1.setId(1L); + TEST_AIRPLANE1.setName("Airplane 1"); + TEST_AIRPLANE1.setType("Boeing 747"); + TEST_AIRPLANE1.setCapacity(100); + + TEST_AIRPLANE2.setId(2L); + TEST_AIRPLANE2.setName("Airplane 2"); + TEST_AIRPLANE2.setType("Airbus A380"); + TEST_AIRPLANE2.setCapacity(200); + } + + @Test + void listAirplanes_returnsAirplanes() throws Exception { + airplaneRepository.save(TEST_AIRPLANE1); + airplaneRepository.save(TEST_AIRPLANE2); + + String response = mockMvc.perform(get("/airplanes")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsString(); + + List<AirplaneDTO> entities = objectMapper.readValue(response, new TypeReference<>() {}); + + assertThat(entities.size()).isEqualTo(2); + + assertThat(entities.get(0).getId()).isEqualTo(TEST_AIRPLANE1.getId()); + assertThat(entities.get(0).getName()).isEqualTo(TEST_AIRPLANE1.getName()); + assertThat(entities.get(0).getType()).isEqualTo(TEST_AIRPLANE1.getType()); + assertThat(entities.get(0).getCapacity()).isEqualTo(TEST_AIRPLANE1.getCapacity()); + + assertThat(entities.get(1).getId()).isEqualTo(TEST_AIRPLANE2.getId()); + assertThat(entities.get(1).getName()).isEqualTo(TEST_AIRPLANE2.getName()); + assertThat(entities.get(1).getType()).isEqualTo(TEST_AIRPLANE2.getType()); + assertThat(entities.get(1).getCapacity()).isEqualTo(TEST_AIRPLANE2.getCapacity()); + } + +} diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/controller/DestinationControllerTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/DestinationControllerTest.java similarity index 99% rename from resources-management/src/test/java/cz/muni/fi/pa165/controller/DestinationControllerTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/DestinationControllerTest.java index 72c513810981221103290e951c922631e8cb9d0c..8e14fe3464ab9cf6855f8b9c4c3f8689a0766543 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/controller/DestinationControllerTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/controller/DestinationControllerTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.controller; +package cz.muni.fi.pa165.resources.controller; import cz.muni.fi.pa165.generated.model.DestinationDTO; import cz.muni.fi.pa165.resources.controller.DestinationsController; diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/facade/AirplaneFacadeTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/AirplaneFacadeTest.java similarity index 99% rename from resources-management/src/test/java/cz/muni/fi/pa165/facade/AirplaneFacadeTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/AirplaneFacadeTest.java index 5fa071246c1788652f0cea854b7a3d6af1c7500a..66bf4bb6156c33e7d1a46b675a22ca60b2fc30e6 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/facade/AirplaneFacadeTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/AirplaneFacadeTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.facade; +package cz.muni.fi.pa165.resources.facade; import cz.muni.fi.pa165.generated.model.AirplaneDTO; import cz.muni.fi.pa165.resources.exceptions.ResourceNotFoundException; diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/facade/DestinationFacadeTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/DestinationFacadeTest.java similarity index 99% rename from resources-management/src/test/java/cz/muni/fi/pa165/facade/DestinationFacadeTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/DestinationFacadeTest.java index b9f24f9bc03e82d853587286252f69ed98b27bbe..85f764dc840e329ae666443ca222455f59f2bbef 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/facade/DestinationFacadeTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/facade/DestinationFacadeTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.facade; +package cz.muni.fi.pa165.resources.facade; import cz.muni.fi.pa165.generated.model.DestinationDTO; import cz.muni.fi.pa165.resources.exceptions.ResourceNotFoundException; diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/service/AirplaneServiceTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/service/AirplaneServiceTest.java similarity index 99% rename from resources-management/src/test/java/cz/muni/fi/pa165/service/AirplaneServiceTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/service/AirplaneServiceTest.java index b9cd631a0f886d1fedfc06176aba67e441fa7131..9b2f07171c1592ae117d7f96a23064fe0f8cd22b 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/service/AirplaneServiceTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/service/AirplaneServiceTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.service; +package cz.muni.fi.pa165.resources.service; import cz.muni.fi.pa165.generated.model.AirplaneDTO; import cz.muni.fi.pa165.resources.data.repository.AirplaneRepository; diff --git a/resources-management/src/test/java/cz/muni/fi/pa165/service/DestinationServiceTest.java b/resources-management/src/test/java/cz/muni/fi/pa165/resources/service/DestinationServiceTest.java similarity index 99% rename from resources-management/src/test/java/cz/muni/fi/pa165/service/DestinationServiceTest.java rename to resources-management/src/test/java/cz/muni/fi/pa165/resources/service/DestinationServiceTest.java index bb9595902199414ee255a861fbb4fec97bf3db27..edb23c36ef74192017ab0115766cdad032887b4e 100644 --- a/resources-management/src/test/java/cz/muni/fi/pa165/service/DestinationServiceTest.java +++ b/resources-management/src/test/java/cz/muni/fi/pa165/resources/service/DestinationServiceTest.java @@ -1,4 +1,4 @@ -package cz.muni.fi.pa165.service; +package cz.muni.fi.pa165.resources.service; import cz.muni.fi.pa165.generated.model.DestinationDTO; import cz.muni.fi.pa165.resources.data.repository.DestinationRepository; diff --git a/resources-management/src/test/resources/application-test.properties b/resources-management/src/test/resources/application-test.properties new file mode 100644 index 0000000000000000000000000000000000000000..edc65e82f93b45033aca141be5427717cac664bf --- /dev/null +++ b/resources-management/src/test/resources/application-test.properties @@ -0,0 +1,9 @@ +spring.datasource.url=jdbc:h2:mem:testdb;MODE=PostgreSQL;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE +spring.datasource.username=resources-management-test +spring.datasource.password= +spring.datasource.driverClassName=org.h2.Driver +spring.jpa.hibernate.ddl-auto=create-drop +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect +spring.jpa.properties.hibernate.format_sql=true +spring.jpa.properties.hibernate.show_sql=false +spring.h2.console.enabled=true \ No newline at end of file