From bb8a406c077fb86a98dea2152a7473d4eb0792f1 Mon Sep 17 00:00:00 2001
From: Andrey Belousov <groundhog448@gmail.com>
Date: Sun, 15 Dec 2019 14:54:00 +0000
Subject: [PATCH] Added tests for browsing and editing of User, Cinema and
 Ticket

---
 .../com/s3ai/corporate_app2/CinemasApiTest.kt | 93 +++++++++++++++++++
 .../CorporateApp2ApplicationTests.kt          | 20 ----
 .../com/s3ai/corporate_app2/TicketsApiTest.kt | 71 ++++++++++++++
 .../com/s3ai/corporate_app2/UsersApiTest.kt   | 71 ++++++++++++++
 4 files changed, 235 insertions(+), 20 deletions(-)
 create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt
 delete mode 100644 src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
 create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt
 create mode 100644 src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt

diff --git a/src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt
new file mode 100644
index 0000000..7af1764
--- /dev/null
+++ b/src/test/kotlin/com/s3ai/corporate_app2/CinemasApiTest.kt
@@ -0,0 +1,93 @@
+package com.s3ai.corporate_app2
+
+import com.s3ai.corporate_app2.controllers.CinemasController
+import com.s3ai.corporate_app2.controllers.rest.CinemaApiController
+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.context.SpringBootTest
+import org.springframework.ui.ExtendedModelMap
+import org.springframework.ui.Model
+import java.util.*
+import javax.servlet.ServletResponse
+import javax.servlet.http.HttpServletResponse
+
+
+@SpringBootTest
+class CinemasApiTest {
+    @Autowired
+    private lateinit var controller: CinemasController
+
+    @Autowired
+    private lateinit var apiController: CinemaApiController
+
+    @Test
+    @Throws(Exception::class)
+    fun contextLoads() {
+        assertThat(controller).isNotNull
+        assertThat(apiController).isNotNull
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldUpdateCinema() {
+        val cinema = Cinema()
+        val id = UUID.randomUUID()
+        cinema.id = id
+        cinema.name = "test"
+        controller.updateCinema(cinema)
+        val cinemaFromBase = controller.cinemaService.findById(id)
+        assertThat(cinemaFromBase?.equals(cinema))
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToCreateCinemaIfIdNotExists() {
+        val model = ExtendedModelMap()
+        val redirect = controller.getCinemaEditPage(UUID.randomUUID().toString(), model)
+        assertThat(redirect.equals("cinemas/edit"))
+        assertThat(model.getValue("action") == "Create")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToEditCinemaIfIdExists() {
+        val cinema = Cinema()
+        val id = UUID.randomUUID()
+        cinema.id = id
+        cinema.name = "test"
+        controller.updateCinema(cinema)
+        val model = ExtendedModelMap()
+        val redirect = controller.getCinemaEditPage(id.toString(), model)
+        assertThat(redirect.equals("cinemas/edit"))
+        assertThat(model.getValue("action") == "Edit")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldReturnCinemasBrowsePage() {
+        val cinema = Cinema()
+        val id = UUID.randomUUID()
+        cinema.id = id
+        cinema.name = "test"
+        controller.updateCinema(cinema)
+        val model = ExtendedModelMap()
+        val redirect = controller.getCinemasBrowsePage(model)
+        assertThat(redirect.equals("cinemas/list"))
+        assertThat(model.getValue("cinemas")).isNotNull
+    }
+
+//    @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/CorporateApp2ApplicationTests.kt b/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
deleted file mode 100644
index 5ae1ccc..0000000
--- a/src/test/kotlin/com/s3ai/corporate_app2/CorporateApp2ApplicationTests.kt
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.s3ai.corporate_app2
-
-import com.s3ai.corporate_app2.controllers.CinemasController
-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.context.SpringBootTest
-
-
-@SpringBootTest
-class CorporateApp2ApplicationTests {
-    @Autowired
-    private lateinit var controller: CinemasController
-
-    @Test
-    @Throws(Exception::class)
-    fun contextLoads() {
-        assertThat(controller).isNotNull
-    }
-}
diff --git a/src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt
new file mode 100644
index 0000000..1b91a80
--- /dev/null
+++ b/src/test/kotlin/com/s3ai/corporate_app2/TicketsApiTest.kt
@@ -0,0 +1,71 @@
+package com.s3ai.corporate_app2
+
+import com.s3ai.corporate_app2.controllers.TicketsController
+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.context.SpringBootTest
+import org.springframework.ui.ExtendedModelMap
+import java.util.*
+
+
+@SpringBootTest
+class TicketsApiTest {
+    @Autowired
+    private lateinit var controller: TicketsController
+
+    @Test
+    @Throws(Exception::class)
+    fun contextLoads() {
+        assertThat(controller).isNotNull
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldUpdateTicket() {
+        val ticket = Ticket()
+        val id = UUID.randomUUID()
+        ticket.id = id
+        ticket.movie = "test"
+        controller.updateTicket(ticket)
+        val ticketFromBase = controller.ticketService.findById(id)
+        assertThat(ticketFromBase?.equals(ticket))
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToCreateTicketIfIdNotExists() {
+        val model = ExtendedModelMap()
+        val redirect = controller.getTicketEditPage(UUID.randomUUID().toString(), model)
+        assertThat(redirect.equals("tickets/edit"))
+        assertThat(model.getValue("action") == "Create")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToEditCinemaIfIdExists() {
+        val ticket = Ticket()
+        val id = UUID.randomUUID()
+        ticket.id = id
+        ticket.movie = "test"
+        controller.updateTicket(ticket)
+        val model = ExtendedModelMap()
+        val redirect = controller.getTicketEditPage(id.toString(), model)
+        assertThat(redirect.equals("tickets/edit"))
+        assertThat(model.getValue("action") == "Edit")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldReturnTicketsBrowsePage() {
+        val ticket = Ticket()
+        val id = UUID.randomUUID()
+        ticket.id = id
+        ticket.movie = "test"
+        controller.updateTicket(ticket)
+        val model = ExtendedModelMap()
+        val redirect = controller.getTicketsBrowsePage(model)
+        assertThat(redirect.equals("tickets/list"))
+        assertThat(model.getValue("tickets")).isNotNull
+    }
+}
\ No newline at end of file
diff --git a/src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt b/src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt
new file mode 100644
index 0000000..8ff981c
--- /dev/null
+++ b/src/test/kotlin/com/s3ai/corporate_app2/UsersApiTest.kt
@@ -0,0 +1,71 @@
+package com.s3ai.corporate_app2
+
+import com.s3ai.corporate_app2.controllers.UsersController
+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.context.SpringBootTest
+import org.springframework.ui.ExtendedModelMap
+import java.util.*
+
+
+@SpringBootTest
+class UsersApiTest {
+    @Autowired
+    private lateinit var controller: UsersController
+
+    @Test
+    @Throws(Exception::class)
+    fun contextLoads() {
+        assertThat(controller).isNotNull
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldUpdateCinema() {
+        val user = User()
+        val id = UUID.randomUUID()
+        user.id = id
+        user.name = "test"
+        controller.updateUser(user)
+        val userFromBase = controller.userService.findById(id)
+        assertThat(userFromBase?.equals(user))
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToCreateUserIfIdNotExists() {
+        val model = ExtendedModelMap()
+        val redirect = controller.getUserEditPage(UUID.randomUUID().toString(), model)
+        assertThat(redirect.equals("users/edit"))
+        assertThat(model.getValue("action") == "Create")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldRedirectToEditCinemaIfIdExists() {
+        val user = User()
+        val id = UUID.randomUUID()
+        user.id = id
+        user.name = "test"
+        controller.updateUser(user)
+        val model = ExtendedModelMap()
+        val redirect = controller.getUserEditPage(id.toString(), model)
+        assertThat(redirect.equals("users/edit"))
+        assertThat(model.getValue("action") == "Edit")
+    }
+
+    @Test
+    @Throws(Exception::class)
+    fun shouldReturnUsersBrowsePage() {
+        val user = User()
+        val id = UUID.randomUUID()
+        user.id = id
+        user.name = "test"
+        controller.updateUser(user)
+        val model = ExtendedModelMap()
+        val redirect = controller.getUsersBrowsePage(model)
+        assertThat(redirect.equals("users/list"))
+        assertThat(model.getValue("users")).isNotNull
+    }
+}
-- 
GitLab