исправления

This commit is contained in:
Elena Ponomareva
2026-04-24 23:47:56 +03:00
parent 8926e5b08c
commit f563c3e7cf
8 changed files with 137 additions and 69 deletions
@@ -26,7 +26,7 @@ class FilmControllerTest {
fun `create film should return 201 CREATED`() {
val request = CreateFilmRequest(
title = "The Matrix",
description = "A computer hacker learns about the true nature of reality"
description = "A computer hacker learns about the true nature of reality",
)
mockMvc.perform(
@@ -40,7 +40,6 @@ class FilmControllerTest {
.andExpect(jsonPath("$.id").exists())
}
@Test
fun `edit film should return updated film`() {
val createRequest = CreateFilmRequest(
@@ -58,7 +57,7 @@ class FilmControllerTest {
val editRequest = EditFilmRequest(
title = "New Title",
description = "New Description"
description = "New Description",
)
mockMvc.perform(
@@ -71,7 +70,6 @@ class FilmControllerTest {
.andExpect(jsonPath("$.description").value("New Description"))
}
@Test
fun `search film by title should return film`() {
val request = CreateFilmRequest(
@@ -94,7 +92,6 @@ class FilmControllerTest {
.andExpect(jsonPath("$.description").value("Dream within a dream"))
}
@Test
fun `search film by non-existent title should return empty`() {
mockMvc.perform(
@@ -105,7 +102,6 @@ class FilmControllerTest {
.andExpect(content().string(""))
}
@Test
fun `delete film should return 204 NO CONTENT`() {
val request = CreateFilmRequest(
@@ -9,8 +9,9 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.http.MediaType
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
import org.springframework.transaction.annotation.Transactional
@SpringBootTest
@@ -24,46 +25,57 @@ class FilmLibraryControllerTest {
@Autowired
private lateinit var objectMapper: ObjectMapper
@Test
fun `add film to library should work`() {
val userRequest = CreateUserRequest("Film Adder", "adder@example.com")
val userRequest = CreateUserRequest(
name = "Film Adder",
email = "adder@example.com",
)
val userResponse = mockMvc.perform(
post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(userRequest))
.content(objectMapper.writeValueAsString(userRequest)),
).andReturn()
val userId = objectMapper.readTree(userResponse.response.contentAsString).get("id").asText()
val filmRequest = CreateFilmRequest("Library Film", "Film description")
val filmRequest = CreateFilmRequest(
title = "Library Film",
description = "Film description",
)
val filmResponse = mockMvc.perform(
post("/api/films")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(filmRequest))
.content(objectMapper.writeValueAsString(filmRequest)),
).andReturn()
val filmId = objectMapper.readTree(filmResponse.response.contentAsString).get("id").asText()
mockMvc.perform(
post("/api/users/$userId/library/films/$filmId")
post("/api/users/$userId/library/films/$filmId"),
)
.andExpect(status().isCreated)
.andExpect(status().isCreated())
}
@Test
fun `remove film from library should return 204`() {
val userRequest = CreateUserRequest("Remove Film", "remove@example.com")
val userRequest = CreateUserRequest(
name = "Remove Film",
email = "remove@example.com",
)
val userResponse = mockMvc.perform(
post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(userRequest))
.content(objectMapper.writeValueAsString(userRequest)),
).andReturn()
val userId = objectMapper.readTree(userResponse.response.contentAsString).get("id").asText()
val filmRequest = CreateFilmRequest("Film To Remove", "Will be removed")
val filmRequest = CreateFilmRequest(
title = "Film To Remove",
description = "Will be removed",
)
val filmResponse = mockMvc.perform(
post("/api/films")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(filmRequest))
.content(objectMapper.writeValueAsString(filmRequest)),
).andReturn()
val filmId = objectMapper.readTree(filmResponse.response.contentAsString).get("id").asText()
@@ -9,8 +9,11 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMock
import org.springframework.boot.test.context.SpringBootTest
import org.springframework.http.MediaType
import org.springframework.test.web.servlet.MockMvc
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.*
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.patch
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath
import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status
import org.springframework.transaction.annotation.Transactional
@SpringBootTest
@@ -28,13 +31,13 @@ class UserControllerTest {
fun `create user should return 201 CREATED`() {
val request = CreateUserRequest(
name = "John Doe",
email = "john@example.com"
email = "john@example.com",
)
mockMvc.perform(
post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(request))
.content(objectMapper.writeValueAsString(request)),
)
.andExpect(status().isCreated)
.andExpect(jsonPath("$.name").value("John Doe"))
@@ -42,18 +45,17 @@ class UserControllerTest {
.andExpect(jsonPath("$.id").exists())
}
@Test
fun `edit user should return updated user`() {
val createRequest = CreateUserRequest(
name = "Old Name",
email = "edit@example.com"
email = "edit@example.com",
)
val response = mockMvc.perform(
post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(createRequest))
.content(objectMapper.writeValueAsString(createRequest)),
).andReturn()
val userId = objectMapper.readTree(response.response.contentAsString).get("id").asText()
@@ -63,7 +65,7 @@ class UserControllerTest {
mockMvc.perform(
patch("/api/users/$userId")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(editRequest))
.content(objectMapper.writeValueAsString(editRequest)),
)
.andExpect(status().isOk)
.andExpect(jsonPath("$.name").value("New Name"))
@@ -74,13 +76,13 @@ class UserControllerTest {
fun `delete user should return 204 NO CONTENT`() {
val request = CreateUserRequest(
name = "User To Delete",
email = "delete@example.com"
email = "delete@example.com",
)
val response = mockMvc.perform(
post("/api/users")
.contentType(MediaType.APPLICATION_JSON)
.content(objectMapper.writeValueAsString(request))
.content(objectMapper.writeValueAsString(request)),
).andReturn()
val userId = objectMapper.readTree(response.response.contentAsString).get("id").asText()