From aee1a40cf83a51b87b2f697f50896982fa63ee17 Mon Sep 17 00:00:00 2001 From: Pavel Kirilin <win10@list.ru> Date: Tue, 17 Dec 2019 01:32:43 +0400 Subject: [PATCH] Added tests. Description: - Added testing on formatting. Signed-off-by: Pavel Kirilin <win10@list.ru> --- .../{ => controllers}/CinemasApiTest.kt | 34 +---------- .../{ => controllers}/TicketsApiTest.kt | 4 +- .../{ => controllers}/UsersApiTest.kt | 4 +- .../controllers/rest/CinemaApiTest.kt | 59 +++++++++++++++++++ .../rest/formats/CinemasFormattingTests.kt | 59 +++++++++++++++++++ 5 files changed, 124 insertions(+), 36 deletions(-) rename src/test/kotlin/com/s3ai/corporate_app2/{ => controllers}/CinemasApiTest.kt (65%) rename src/test/kotlin/com/s3ai/corporate_app2/{ => controllers}/TicketsApiTest.kt (95%) rename src/test/kotlin/com/s3ai/corporate_app2/{ => controllers}/UsersApiTest.kt (95%) create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/formats/CinemasFormattingTests.kt diff --git a/src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/CinemasApiTest.kt similarity index 65% rename from src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt rename to src/test/kotlin/com/s3ai/corporate_app2/controllers/CinemasApiTest.kt index 62638c0..c945828 100644 --- a/src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt +++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/CinemasApiTest.kt @@ -1,17 +1,12 @@ -package com.s3ai.corporate_app2 +package com.s3ai.corporate_app2.controllers -import com.s3ai.corporate_app2.controllers.CinemasController -import com.s3ai.corporate_app2.controllers.rest.CinemaApiController +import com.s3ai.corporate_app2.Cinema import org.assertj.core.api.Assertions.assertThat 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.http.MediaType -import org.springframework.test.context.jdbc.Sql import org.springframework.test.web.servlet.MockMvc -import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get -import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status import org.springframework.ui.ExtendedModelMap import java.util.* @@ -25,14 +20,10 @@ class CinemasApiTest { @Autowired private lateinit var mvc: MockMvc - @Autowired - private lateinit var apiController: CinemaApiController - @Test @Throws(Exception::class) fun contextLoads() { assertThat(controller).isNotNull - assertThat(apiController).isNotNull } @Test @@ -84,25 +75,4 @@ class CinemasApiTest { assertThat(model.getValue("cinemas")).isNotNull } - @Test - @Sql("/cinemasFill.sql") - fun mvcTest() { - mvc.perform(get("/api/json/cinemas/all") - .contentType(MediaType.APPLICATION_JSON)) - .andExpect(status().isOk) - } - -// @Test -// @Throws(Exception::class) -// fun shouldDeleteCinema() { -// val cinema = Cinema() -// val id = UUID.randomUUID() -// cinema.id = id -// cinema.name = "test" -// controller.updateCinema(cinema) -// var responce = HttpResponseFactory -// apiController.deleteCinema(id.toString(), Http) -// val cinemaFromBase = controller.cinemaService.findById(id) -// assertThat(cinemaFromBase?.equals(cinema)) -// } } diff --git a/src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/TicketsApiTest.kt similarity index 95% rename from src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt rename to src/test/kotlin/com/s3ai/corporate_app2/controllers/TicketsApiTest.kt index 1b91a80..4155762 100644 --- a/src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt +++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/TicketsApiTest.kt @@ -1,6 +1,6 @@ -package com.s3ai.corporate_app2 +package com.s3ai.corporate_app2.controllers -import com.s3ai.corporate_app2.controllers.TicketsController +import com.s3ai.corporate_app2.Ticket import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired diff --git a/src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/UsersApiTest.kt similarity index 95% rename from src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt rename to src/test/kotlin/com/s3ai/corporate_app2/controllers/UsersApiTest.kt index 8ff981c..121ea0a 100644 --- a/src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt +++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/UsersApiTest.kt @@ -1,6 +1,6 @@ -package com.s3ai.corporate_app2 +package com.s3ai.corporate_app2.controllers -import com.s3ai.corporate_app2.controllers.UsersController +import com.s3ai.corporate_app2.User import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired diff --git a/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt new file mode 100644 index 0000000..6a8c2cf --- /dev/null +++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt @@ -0,0 +1,59 @@ +package com.s3ai.corporate_app2.controllers.rest + +import com.s3ai.corporate_app2.CinemaService +import com.s3ai.corporate_app2.TicketService +import org.assertj.core.api.Assertions +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.hasItem +import org.hamcrest.core.IsNot.not +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.jdbc.Sql +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.MvcResult +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get +import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status + +@SpringBootTest +@AutoConfigureMockMvc +class CinemaApiTest { + @Autowired + private lateinit var service: CinemaService + + @Autowired + private lateinit var ticketService: TicketService + + @Autowired + private lateinit var mvc: MockMvc + + @Test + @Throws(Exception::class) + fun contextLoads() { + Assertions.assertThat(mvc).isNotNull + Assertions.assertThat(service).isNotNull + } + + @Test + @Sql("/cinemasFill.sql") + fun fillTest() { + mvc.perform(get("/api/cinemas/fill")) + .andDo { e: MvcResult -> println(e.response) } + .andExpect(status().isOk) + assertThat(service.findAll().size, equalTo(401)) + } + + @Test + @Sql("/cinemasFill.sql", "/usersFill.sql", "/ticketsFill.sql") + fun deleteTest() { + val randomCinemaId = ticketService.findAll().map { e -> e.cinema?.id }.distinct().random() + print(randomCinemaId) + mvc.perform(delete("/api/cinemas/delete?id=${randomCinemaId}")) + .andExpect(status().isOk) + val newCinemas = ticketService.findAll().map { e -> e.cinema!!.id }.distinct() + assertThat(newCinemas, not(hasItem(randomCinemaId))) + } +} \ No newline at end of file diff --git a/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/formats/CinemasFormattingTests.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/formats/CinemasFormattingTests.kt new file mode 100644 index 0000000..992f1c2 --- /dev/null +++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/formats/CinemasFormattingTests.kt @@ -0,0 +1,59 @@ +package com.s3ai.corporate_app2.controllers.rest.formats + +import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper +import com.fasterxml.jackson.module.kotlin.readValue +import com.s3ai.corporate_app2.Cinema +import com.s3ai.corporate_app2.CinemaService +import org.assertj.core.api.Assertions +import org.hamcrest.CoreMatchers.equalTo +import org.hamcrest.MatcherAssert.assertThat +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.jdbc.Sql +import org.springframework.test.web.servlet.MockMvc +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders +import org.springframework.test.web.servlet.result.MockMvcResultMatchers + + +@SpringBootTest +@AutoConfigureMockMvc +class CinemasFormattingTests { + @Autowired + private lateinit var service: CinemaService + + @Autowired + private lateinit var mvc: MockMvc + + @Test + @Throws(Exception::class) + fun contextLoads() { + Assertions.assertThat(mvc).isNotNull + Assertions.assertThat(service).isNotNull + } + + @Test + @Sql("/cinemasFill.sql") + fun allJSONTest() { + val mvcResult = mvc.perform(MockMvcRequestBuilders.get("/api/json/cinemas/all")) + .andExpect(MockMvcResultMatchers.status().isOk) + .andReturn() + val objectMapper = jacksonObjectMapper() + val cinemas: List<Cinema> = objectMapper.readValue(mvcResult.response.contentAsString) + assertThat(cinemas.size, equalTo(100)) + } + + @Test + @Sql("/cinemasFill.sql") + fun itemJSONTest() { + val randomCinema = service.findAll().random() + val mvcResult = mvc.perform(MockMvcRequestBuilders.get("/api/json/cinemas/item/${randomCinema.id}")) + .andExpect(MockMvcResultMatchers.status().isOk) + .andReturn() + val objectMapper = jacksonObjectMapper() + val parsedCinema: Cinema = objectMapper.readValue(mvcResult.response.contentAsString) + assertThat(parsedCinema.toString(), equalTo(randomCinema.toString())) + } + +} \ No newline at end of file -- GitLab