diff --git a/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java index 60dfb9d..8d116b3 100644 --- a/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java @@ -1,15 +1,15 @@ package io.hexlet.blog.controller.api; -import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; -import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import io.hexlet.blog.dto.PostCommentDTO; import io.hexlet.blog.mapper.PostCommentMapper; +import io.hexlet.blog.model.Post; +import io.hexlet.blog.model.User; +import io.hexlet.blog.repository.PostCommentRepository; +import io.hexlet.blog.repository.PostRepository; +import io.hexlet.blog.repository.UserRepository; +import io.hexlet.blog.util.ModelGenerator; import org.assertj.core.api.Assertions; import org.instancio.Instancio; import org.junit.jupiter.api.BeforeEach; @@ -19,13 +19,6 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor; import org.springframework.test.web.servlet.MockMvc; - -import io.hexlet.blog.model.Post; -import io.hexlet.blog.repository.PostCommentRepository; -import io.hexlet.blog.repository.PostRepository; -import io.hexlet.blog.util.ModelGenerator; -import io.hexlet.blog.util.UserUtils; -import jakarta.transaction.Transactional; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; @@ -33,9 +26,14 @@ import java.util.List; import java.util.Map; +import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + @SpringBootTest -@Transactional @AutoConfigureMockMvc public class PostsCommentsControllerTest { @@ -55,7 +53,7 @@ public class PostsCommentsControllerTest { private PostCommentRepository postCommentRepository; @Autowired - private UserUtils userUtils; + private UserRepository userRepository; private JwtRequestPostProcessor token; @@ -67,34 +65,42 @@ public class PostsCommentsControllerTest { @Autowired private PostCommentMapper postCommentMapper; + private User testUser; + @BeforeEach public void setUp() { + postCommentRepository.deleteAll(); + postRepository.deleteAll(); + userRepository.deleteAll(); + mockMvc = MockMvcBuilders.webAppContextSetup(wac) .defaultResponseCharacterEncoding(StandardCharsets.UTF_8) .apply(springSecurity()) .build(); - token = jwt().jwt(builder -> builder.subject("hexlet@example.com")); + testUser = Instancio.of(modelGenerator.getUserModel()).create(); + userRepository.save(testUser); + token = jwt().jwt(builder -> builder.subject(testUser.getEmail())); testPost = Instancio.of(modelGenerator.getPostModel()) .create(); - testPost.setAuthor(userUtils.getTestUser()); + testPost.setAuthor(testUser); postRepository.save(testPost); var testPost2 = Instancio.of(modelGenerator.getPostModel()) .create(); - testPost2.setAuthor(userUtils.getTestUser()); + testPost2.setAuthor(testUser); postRepository.save(testPost2); var testPostComment = Instancio.of(modelGenerator.getPostCommentModel()).create(); testPostComment.setPost(testPost); - testPostComment.setAuthor(userUtils.getTestUser()); + testPostComment.setAuthor(testUser); postCommentRepository.save(testPostComment); var testPostComment2 = Instancio.of(modelGenerator.getPostCommentModel()).create(); testPostComment2.setPost(testPost2); - testPostComment2.setAuthor(userUtils.getTestUser()); + testPostComment2.setAuthor(testUser); postCommentRepository.save(testPostComment2); } diff --git a/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java index 11d8b89..e5917c9 100644 --- a/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java @@ -1,18 +1,16 @@ package io.hexlet.blog.controller.api; -import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; -import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import io.hexlet.blog.dto.PostDTO; +import io.hexlet.blog.dto.PostUpdateDTO; +import io.hexlet.blog.mapper.PostMapper; +import io.hexlet.blog.model.Post; +import io.hexlet.blog.model.User; +import io.hexlet.blog.repository.PostCommentRepository; +import io.hexlet.blog.repository.PostRepository; +import io.hexlet.blog.repository.UserRepository; +import io.hexlet.blog.util.ModelGenerator; import org.assertj.core.api.Assertions; import org.instancio.Instancio; import org.junit.jupiter.api.BeforeEach; @@ -24,21 +22,23 @@ import org.springframework.http.MediaType; import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor; import org.springframework.test.web.servlet.MockMvc; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import io.hexlet.blog.dto.PostUpdateDTO; -import io.hexlet.blog.mapper.PostMapper; -import io.hexlet.blog.model.Post; -import io.hexlet.blog.repository.PostRepository; -import io.hexlet.blog.util.ModelGenerator; -import io.hexlet.blog.util.UserUtils; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import java.nio.charset.StandardCharsets; import java.util.List; +import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + @SpringBootTest @AutoConfigureMockMvc @@ -63,25 +63,36 @@ public class PostsControllerTest { private PostRepository postRepository; @Autowired - private UserUtils userUtils; + private UserRepository userRepository; + + @Autowired + private PostCommentRepository postCommentRepository; private JwtRequestPostProcessor token; private Post testPost; + private User testUser; + @BeforeEach public void setUp() { + postCommentRepository.deleteAll(); + postRepository.deleteAll(); + userRepository.deleteAll(); + mockMvc = MockMvcBuilders.webAppContextSetup(wac) .defaultResponseCharacterEncoding(StandardCharsets.UTF_8) .apply(springSecurity()) .build(); - token = jwt().jwt(builder -> builder.subject("hexlet@example.com")); + testUser = Instancio.of(modelGenerator.getUserModel()).create(); + userRepository.save(testUser); + token = jwt().jwt(builder -> builder.subject(testUser.getEmail())); testPost = Instancio.of(modelGenerator.getPostModel()) .create(); - testPost.setAuthor(userUtils.getTestUser()); + testPost.setAuthor(testUser); } @Test @@ -113,7 +124,7 @@ public void testCreate() throws Exception { mockMvc.perform(request) .andExpect(status().isCreated()); - var post = postRepository.findBySlug(testPost.getSlug()).get(); + var post = postRepository.findBySlug(testPost.getSlug()).orElse(null); assertNotNull(post); assertThat(post.getName()).isEqualTo(testPost.getName()); } @@ -133,7 +144,7 @@ public void testUpdate() throws Exception { mockMvc.perform(request) .andExpect(status().isOk()); - testPost = postRepository.findById(testPost.getId()).get(); + testPost = postRepository.findById(testPost.getId()).orElseThrow(); assertThat(testPost.getName()).isEqualTo(data.getName().get()); } @@ -152,7 +163,7 @@ public void testUpdateFailed() throws Exception { mockMvc.perform(request) .andExpect(status().isForbidden()); - var actualPost = postRepository.findById(testPost.getId()).get(); + var actualPost = postRepository.findById(testPost.getId()).orElseThrow(); assertThat(actualPost.getName()).isEqualTo(testPost.getName()); } diff --git a/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java b/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java index 2e22efe..0005b3a 100644 --- a/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java +++ b/src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java @@ -1,22 +1,13 @@ package io.hexlet.blog.controller.api; -import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; -import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; - -import java.util.List; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; - import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; import io.hexlet.blog.dto.UserDTO; import io.hexlet.blog.mapper.UserMapper; +import io.hexlet.blog.model.User; +import io.hexlet.blog.repository.UserRepository; +import io.hexlet.blog.util.ModelGenerator; +import net.datafaker.Faker; import org.assertj.core.api.Assertions; import org.instancio.Instancio; import org.junit.jupiter.api.BeforeEach; @@ -27,16 +18,23 @@ import org.springframework.http.MediaType; import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor; import org.springframework.test.web.servlet.MockMvc; - -import com.fasterxml.jackson.databind.ObjectMapper; - -import io.hexlet.blog.model.User; -import io.hexlet.blog.repository.UserRepository; -import io.hexlet.blog.util.ModelGenerator; -import net.datafaker.Faker; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; + +import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + @SpringBootTest @AutoConfigureMockMvc @@ -70,16 +68,16 @@ public class UsersControllerTest { @BeforeEach public void setUp() { + userRepository.deleteAll(); + mockMvc = MockMvcBuilders.webAppContextSetup(wac) .defaultResponseCharacterEncoding(StandardCharsets.UTF_8) .apply(springSecurity()) .build(); - token = jwt().jwt(builder -> builder.subject("hexlet@example.com")); - - testUser = Instancio.of(modelGenerator.getUserModel()) - .create(); + testUser = Instancio.of(modelGenerator.getUserModel()).create(); userRepository.save(testUser); + token = jwt().jwt(builder -> builder.subject(testUser.getEmail())); } @Test @@ -109,7 +107,7 @@ public void testCreate() throws Exception { mockMvc.perform(request) .andExpect(status().isCreated()); - var user = userRepository.findByEmail(data.getEmail()).get(); + var user = userRepository.findByEmail(data.getEmail()).orElse(null); assertNotNull(user); assertThat(user.getFirstName()).isEqualTo(data.getFirstName()); @@ -130,7 +128,7 @@ public void testUpdate() throws Exception { mockMvc.perform(request) .andExpect(status().isOk()); - var user = userRepository.findById(testUser.getId()).get(); + var user = userRepository.findById(testUser.getId()).orElseThrow(); assertThat(user.getFirstName()).isEqualTo(("Mike")); }