From e03289fe841dc3c06c1cf7e73825426520cfaab6 Mon Sep 17 00:00:00 2001 From: Matej Hrica <492778@mail.muni.cz> Date: Sun, 26 Mar 2023 23:25:14 +0200 Subject: [PATCH] Add report integration tests --- .../report/server/ReportApplicationTests.java | 13 --- .../muni/fi/pa165/report/server/ReportIT.java | 99 +++++++++++++++++++ 2 files changed, 99 insertions(+), 13 deletions(-) delete mode 100644 report/src/test/java/cz/muni/fi/pa165/report/server/ReportApplicationTests.java create mode 100644 report/src/test/java/cz/muni/fi/pa165/report/server/ReportIT.java diff --git a/report/src/test/java/cz/muni/fi/pa165/report/server/ReportApplicationTests.java b/report/src/test/java/cz/muni/fi/pa165/report/server/ReportApplicationTests.java deleted file mode 100644 index 8708f43..0000000 --- a/report/src/test/java/cz/muni/fi/pa165/report/server/ReportApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package cz.muni.fi.pa165.report.server; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ReportApplicationTests { - - @Test - void contextLoads() { - } - -} diff --git a/report/src/test/java/cz/muni/fi/pa165/report/server/ReportIT.java b/report/src/test/java/cz/muni/fi/pa165/report/server/ReportIT.java new file mode 100644 index 0000000..99c3434 --- /dev/null +++ b/report/src/test/java/cz/muni/fi/pa165/report/server/ReportIT.java @@ -0,0 +1,99 @@ +package cz.muni.fi.pa165.report.server; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +import com.fasterxml.jackson.databind.ObjectMapper;; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.test.web.servlet.MockMvc; + +import java.io.IOException; +import java.io.InputStream; +import java.util.Arrays; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +/** + * Integration tests. Run by "maven verify". + */ +@SpringBootTest +@AutoConfigureMockMvc +class ReportIT { + + private static final Logger log = LoggerFactory.getLogger(ReportIT.class); + + @Autowired + private MockMvc mockMvc; + + @Autowired + ObjectMapper objectMapper; + + @Test + void getReportFlightByIdTest() throws Exception { + log.debug("getReportFlightByIdTest() running"); + + ClassLoader classLoader = getClass().getClassLoader(); + + try(InputStream inputStream = classLoader.getResourceAsStream("sample.pdf")){ + byte[] bytes = new byte[inputStream.available()]; + inputStream.read(bytes); + ByteArrayResource resource = new ByteArrayResource(bytes); + var response = mockMvc.perform(get("/api/reports/flight/1")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsByteArray(); + assertThat(Arrays.equals(response, resource.getByteArray())); + log.debug("response: {}", response); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + + @Test + void getReportAirportByIdTest() throws Exception { + log.debug("getReportFlightByIdTest() running"); + + ClassLoader classLoader = getClass().getClassLoader(); + + try(InputStream inputStream = classLoader.getResourceAsStream("sample.pdf")){ + byte[] bytes = new byte[inputStream.available()]; + inputStream.read(bytes); + ByteArrayResource resource = new ByteArrayResource(bytes); + var response = mockMvc.perform(get("/api/reports/airport/1")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsByteArray(); + assertThat(Arrays.equals(response, resource.getByteArray())); + log.debug("response: {}", response); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + + @Test + void getReportAirplaneByIdTest() throws Exception { + log.debug("getReportFlightByIdTest() running"); + + ClassLoader classLoader = getClass().getClassLoader(); + + try(InputStream inputStream = classLoader.getResourceAsStream("sample.pdf")){ + byte[] bytes = new byte[inputStream.available()]; + inputStream.read(bytes); + ByteArrayResource resource = new ByteArrayResource(bytes); + var response = mockMvc.perform(get("/api/reports/airplane/1")) + .andExpect(status().isOk()) + .andReturn().getResponse().getContentAsByteArray(); + assertThat(Arrays.equals(response, resource.getByteArray())); + log.debug("response: {}", response); + } catch (IOException e) { + throw new RuntimeException(e); + } + + } +} -- GitLab