From 4fa078b51cfc72e6f4811ad0a938e90f3860d147 Mon Sep 17 00:00:00 2001
From: Andrey Belousov <groundhog448@gmail.com>
Date: Tue, 17 Dec 2019 23:14:53 +0000
Subject: [PATCH] Added tests for UserApiController, TicketApiController

---
 .../controllers/rest/CinemaApiTest.kt         |  4 +-
 .../controllers/rest/TicketApiTest.kt         | 53 +++++++++++++++++
 .../controllers/rest/UserApiTest.kt           | 57 +++++++++++++++++++
 3 files changed, 112 insertions(+), 2 deletions(-)
 create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/TicketApiTest.kt
 create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/UserApiTest.kt

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
index 6a8c2cf..4aa67a7 100644
--- a/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt
+++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/CinemaApiTest.kt
@@ -53,7 +53,7 @@ class CinemaApiTest {
         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)))
+        val tickets = ticketService.findAll().map { e -> e.cinema!!.id }.distinct()
+        assertThat(tickets, not(hasItem(randomCinemaId)))
     }
 }
\ No newline at end of file
diff --git a/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/TicketApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/TicketApiTest.kt
new file mode 100644
index 0000000..d96c472
--- /dev/null
+++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/TicketApiTest.kt
@@ -0,0 +1,53 @@
+package com.s3ai.corporate_app2.controllers.rest
+
+import com.s3ai.corporate_app2.TicketService
+import org.assertj.core.api.Assertions
+import org.hamcrest.MatcherAssert
+import org.hamcrest.Matchers
+import org.hamcrest.core.IsNot
+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
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers
+
+@SpringBootTest
+@AutoConfigureMockMvc
+class TicketApiTest {
+    @Autowired
+    private lateinit var service: 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", "/usersFill.sql", "/ticketsFill.sql")
+    fun fillTest() {
+        mvc.perform(MockMvcRequestBuilders.get("/api/tickets/fill"))
+                .andDo { e: MvcResult -> println(e.response) }
+                .andExpect(MockMvcResultMatchers.status().isOk)
+        MatcherAssert.assertThat(service.findAll().size, Matchers.equalTo(401))
+    }
+
+    @Test
+    @Sql("/cinemasFill.sql", "/usersFill.sql", "/ticketsFill.sql")
+    fun deleteTest() {
+        val randomTicketId = service.findAll().map { e -> e.id }.distinct().random()
+        print(randomTicketId)
+        mvc.perform(MockMvcRequestBuilders.delete("/api/tickets/delete?id=${randomTicketId}"))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+        val tickets = service.findAll().map { e -> e.id }.distinct()
+        MatcherAssert.assertThat(tickets, IsNot.not(Matchers.hasItem(randomTicketId)))
+    }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/UserApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/UserApiTest.kt
new file mode 100644
index 0000000..9d2f179
--- /dev/null
+++ b/src/test/kotlin/com/s3ai/corporate_app2/controllers/rest/UserApiTest.kt
@@ -0,0 +1,57 @@
+package com.s3ai.corporate_app2.controllers.rest
+
+import com.s3ai.corporate_app2.UserService
+import com.s3ai.corporate_app2.TicketService
+import org.assertj.core.api.Assertions
+import org.hamcrest.MatcherAssert
+import org.hamcrest.Matchers
+import org.hamcrest.core.IsNot
+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
+import org.springframework.test.web.servlet.result.MockMvcResultMatchers
+
+@SpringBootTest
+@AutoConfigureMockMvc
+class UserApiTest {
+    @Autowired
+    private lateinit var service: UserService
+
+    @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("/usersFill.sql")
+    fun fillTest() {
+        mvc.perform(MockMvcRequestBuilders.get("/api/users/fill"))
+                .andDo { e: MvcResult -> println(e.response) }
+                .andExpect(MockMvcResultMatchers.status().isOk)
+        MatcherAssert.assertThat(service.findAll().size, Matchers.equalTo(401))
+    }
+
+    @Test
+    @Sql("/usersFill.sql", "/cinemasFill.sql", "/ticketsFill.sql")
+    fun deleteTest() {
+        val randomUserId = ticketService.findAll().map { e -> e.user?.id }.distinct().random()
+        print(randomUserId)
+        mvc.perform(MockMvcRequestBuilders.delete("/api/users/delete?id=${randomUserId}"))
+                .andExpect(MockMvcResultMatchers.status().isOk)
+        val tickets = ticketService.findAll().map { e -> e.user!!.id }.distinct()
+        MatcherAssert.assertThat(tickets, IsNot.not(Matchers.hasItem(randomUserId)))
+    }
+}
\ No newline at end of file
-- 
GitLab