Skip to content

Commit d65c208

Browse files
authored
Merge pull request #34 from funnyDevGirl/transactional
Deleted @transactional and added @AfterEach in tests
2 parents 5e0c4eb + f9dd4d6 commit d65c208

File tree

3 files changed

+88
-73
lines changed

3 files changed

+88
-73
lines changed

src/test/java/io/hexlet/blog/controller/api/PostsCommentsControllerTest.java

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package io.hexlet.blog.controller.api;
22

3-
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
4-
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
5-
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
6-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
7-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
8-
93
import com.fasterxml.jackson.core.type.TypeReference;
104
import com.fasterxml.jackson.databind.ObjectMapper;
115
import io.hexlet.blog.dto.PostCommentDTO;
126
import io.hexlet.blog.mapper.PostCommentMapper;
7+
import io.hexlet.blog.model.Post;
8+
import io.hexlet.blog.model.User;
9+
import io.hexlet.blog.repository.PostCommentRepository;
10+
import io.hexlet.blog.repository.PostRepository;
11+
import io.hexlet.blog.repository.UserRepository;
12+
import io.hexlet.blog.util.ModelGenerator;
1313
import org.assertj.core.api.Assertions;
1414
import org.instancio.Instancio;
1515
import org.junit.jupiter.api.BeforeEach;
@@ -19,23 +19,21 @@
1919
import org.springframework.boot.test.context.SpringBootTest;
2020
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor;
2121
import org.springframework.test.web.servlet.MockMvc;
22-
23-
import io.hexlet.blog.model.Post;
24-
import io.hexlet.blog.repository.PostCommentRepository;
25-
import io.hexlet.blog.repository.PostRepository;
26-
import io.hexlet.blog.util.ModelGenerator;
27-
import io.hexlet.blog.util.UserUtils;
28-
import jakarta.transaction.Transactional;
2922
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
3023
import org.springframework.web.context.WebApplicationContext;
3124

3225
import java.nio.charset.StandardCharsets;
3326
import java.util.List;
3427
import java.util.Map;
3528

29+
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
30+
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
31+
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
32+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
33+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
34+
3635

3736
@SpringBootTest
38-
@Transactional
3937
@AutoConfigureMockMvc
4038
public class PostsCommentsControllerTest {
4139

@@ -55,7 +53,7 @@ public class PostsCommentsControllerTest {
5553
private PostCommentRepository postCommentRepository;
5654

5755
@Autowired
58-
private UserUtils userUtils;
56+
private UserRepository userRepository;
5957

6058
private JwtRequestPostProcessor token;
6159

@@ -67,34 +65,42 @@ public class PostsCommentsControllerTest {
6765
@Autowired
6866
private PostCommentMapper postCommentMapper;
6967

68+
private User testUser;
69+
7070

7171
@BeforeEach
7272
public void setUp() {
73+
postCommentRepository.deleteAll();
74+
postRepository.deleteAll();
75+
userRepository.deleteAll();
76+
7377
mockMvc = MockMvcBuilders.webAppContextSetup(wac)
7478
.defaultResponseCharacterEncoding(StandardCharsets.UTF_8)
7579
.apply(springSecurity())
7680
.build();
7781

78-
token = jwt().jwt(builder -> builder.subject("[email protected]"));
82+
testUser = Instancio.of(modelGenerator.getUserModel()).create();
83+
userRepository.save(testUser);
84+
token = jwt().jwt(builder -> builder.subject(testUser.getEmail()));
7985

8086
testPost = Instancio.of(modelGenerator.getPostModel())
8187
.create();
82-
testPost.setAuthor(userUtils.getTestUser());
88+
testPost.setAuthor(testUser);
8389
postRepository.save(testPost);
8490

8591
var testPost2 = Instancio.of(modelGenerator.getPostModel())
8692
.create();
87-
testPost2.setAuthor(userUtils.getTestUser());
93+
testPost2.setAuthor(testUser);
8894
postRepository.save(testPost2);
8995

9096
var testPostComment = Instancio.of(modelGenerator.getPostCommentModel()).create();
9197
testPostComment.setPost(testPost);
92-
testPostComment.setAuthor(userUtils.getTestUser());
98+
testPostComment.setAuthor(testUser);
9399
postCommentRepository.save(testPostComment);
94100

95101
var testPostComment2 = Instancio.of(modelGenerator.getPostCommentModel()).create();
96102
testPostComment2.setPost(testPost2);
97-
testPostComment2.setAuthor(userUtils.getTestUser());
103+
testPostComment2.setAuthor(testUser);
98104
postCommentRepository.save(testPostComment2);
99105
}
100106

src/test/java/io/hexlet/blog/controller/api/PostsControllerTest.java

Lines changed: 37 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package io.hexlet.blog.controller.api;
22

3-
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
4-
import static org.assertj.core.api.Assertions.assertThat;
5-
import static org.junit.jupiter.api.Assertions.assertNotNull;
6-
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
7-
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
8-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
9-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
10-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
11-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
12-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
13-
143
import com.fasterxml.jackson.core.type.TypeReference;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
155
import io.hexlet.blog.dto.PostDTO;
6+
import io.hexlet.blog.dto.PostUpdateDTO;
7+
import io.hexlet.blog.mapper.PostMapper;
8+
import io.hexlet.blog.model.Post;
9+
import io.hexlet.blog.model.User;
10+
import io.hexlet.blog.repository.PostCommentRepository;
11+
import io.hexlet.blog.repository.PostRepository;
12+
import io.hexlet.blog.repository.UserRepository;
13+
import io.hexlet.blog.util.ModelGenerator;
1614
import org.assertj.core.api.Assertions;
1715
import org.instancio.Instancio;
1816
import org.junit.jupiter.api.BeforeEach;
@@ -24,21 +22,23 @@
2422
import org.springframework.http.MediaType;
2523
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor;
2624
import org.springframework.test.web.servlet.MockMvc;
27-
28-
import com.fasterxml.jackson.databind.ObjectMapper;
29-
30-
import io.hexlet.blog.dto.PostUpdateDTO;
31-
import io.hexlet.blog.mapper.PostMapper;
32-
import io.hexlet.blog.model.Post;
33-
import io.hexlet.blog.repository.PostRepository;
34-
import io.hexlet.blog.util.ModelGenerator;
35-
import io.hexlet.blog.util.UserUtils;
3625
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
3726
import org.springframework.web.context.WebApplicationContext;
3827

3928
import java.nio.charset.StandardCharsets;
4029
import java.util.List;
4130

31+
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
32+
import static org.assertj.core.api.Assertions.assertThat;
33+
import static org.junit.jupiter.api.Assertions.assertNotNull;
34+
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
35+
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
36+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
37+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
38+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
39+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
40+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
41+
4242

4343
@SpringBootTest
4444
@AutoConfigureMockMvc
@@ -63,25 +63,36 @@ public class PostsControllerTest {
6363
private PostRepository postRepository;
6464

6565
@Autowired
66-
private UserUtils userUtils;
66+
private UserRepository userRepository;
67+
68+
@Autowired
69+
private PostCommentRepository postCommentRepository;
6770

6871
private JwtRequestPostProcessor token;
6972

7073
private Post testPost;
7174

75+
private User testUser;
76+
7277

7378
@BeforeEach
7479
public void setUp() {
80+
postCommentRepository.deleteAll();
81+
postRepository.deleteAll();
82+
userRepository.deleteAll();
83+
7584
mockMvc = MockMvcBuilders.webAppContextSetup(wac)
7685
.defaultResponseCharacterEncoding(StandardCharsets.UTF_8)
7786
.apply(springSecurity())
7887
.build();
7988

80-
token = jwt().jwt(builder -> builder.subject("[email protected]"));
89+
testUser = Instancio.of(modelGenerator.getUserModel()).create();
90+
userRepository.save(testUser);
91+
token = jwt().jwt(builder -> builder.subject(testUser.getEmail()));
8192

8293
testPost = Instancio.of(modelGenerator.getPostModel())
8394
.create();
84-
testPost.setAuthor(userUtils.getTestUser());
95+
testPost.setAuthor(testUser);
8596
}
8697

8798
@Test
@@ -113,7 +124,7 @@ public void testCreate() throws Exception {
113124
mockMvc.perform(request)
114125
.andExpect(status().isCreated());
115126

116-
var post = postRepository.findBySlug(testPost.getSlug()).get();
127+
var post = postRepository.findBySlug(testPost.getSlug()).orElse(null);
117128
assertNotNull(post);
118129
assertThat(post.getName()).isEqualTo(testPost.getName());
119130
}
@@ -133,7 +144,7 @@ public void testUpdate() throws Exception {
133144
mockMvc.perform(request)
134145
.andExpect(status().isOk());
135146

136-
testPost = postRepository.findById(testPost.getId()).get();
147+
testPost = postRepository.findById(testPost.getId()).orElseThrow();
137148
assertThat(testPost.getName()).isEqualTo(data.getName().get());
138149
}
139150

@@ -152,7 +163,7 @@ public void testUpdateFailed() throws Exception {
152163
mockMvc.perform(request)
153164
.andExpect(status().isForbidden());
154165

155-
var actualPost = postRepository.findById(testPost.getId()).get();
166+
var actualPost = postRepository.findById(testPost.getId()).orElseThrow();
156167
assertThat(actualPost.getName()).isEqualTo(testPost.getName());
157168
}
158169

src/test/java/io/hexlet/blog/controller/api/UsersControllerTest.java

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,13 @@
11
package io.hexlet.blog.controller.api;
22

3-
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
4-
import static org.assertj.core.api.Assertions.assertThat;
5-
import static org.junit.jupiter.api.Assertions.assertNotNull;
6-
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
7-
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
8-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
9-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
10-
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
11-
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
12-
13-
import java.util.List;
14-
import java.nio.charset.StandardCharsets;
15-
import java.util.HashMap;
16-
173
import com.fasterxml.jackson.core.type.TypeReference;
4+
import com.fasterxml.jackson.databind.ObjectMapper;
185
import io.hexlet.blog.dto.UserDTO;
196
import io.hexlet.blog.mapper.UserMapper;
7+
import io.hexlet.blog.model.User;
8+
import io.hexlet.blog.repository.UserRepository;
9+
import io.hexlet.blog.util.ModelGenerator;
10+
import net.datafaker.Faker;
2011
import org.assertj.core.api.Assertions;
2112
import org.instancio.Instancio;
2213
import org.junit.jupiter.api.BeforeEach;
@@ -27,16 +18,23 @@
2718
import org.springframework.http.MediaType;
2819
import org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.JwtRequestPostProcessor;
2920
import org.springframework.test.web.servlet.MockMvc;
30-
31-
import com.fasterxml.jackson.databind.ObjectMapper;
32-
33-
import io.hexlet.blog.model.User;
34-
import io.hexlet.blog.repository.UserRepository;
35-
import io.hexlet.blog.util.ModelGenerator;
36-
import net.datafaker.Faker;
3721
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
3822
import org.springframework.web.context.WebApplicationContext;
3923

24+
import java.nio.charset.StandardCharsets;
25+
import java.util.HashMap;
26+
import java.util.List;
27+
28+
import static net.javacrumbs.jsonunit.assertj.JsonAssertions.assertThatJson;
29+
import static org.assertj.core.api.Assertions.assertThat;
30+
import static org.junit.jupiter.api.Assertions.assertNotNull;
31+
import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt;
32+
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity;
33+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
34+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
35+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
36+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
37+
4038

4139
@SpringBootTest
4240
@AutoConfigureMockMvc
@@ -70,16 +68,16 @@ public class UsersControllerTest {
7068

7169
@BeforeEach
7270
public void setUp() {
71+
userRepository.deleteAll();
72+
7373
mockMvc = MockMvcBuilders.webAppContextSetup(wac)
7474
.defaultResponseCharacterEncoding(StandardCharsets.UTF_8)
7575
.apply(springSecurity())
7676
.build();
7777

78-
token = jwt().jwt(builder -> builder.subject("[email protected]"));
79-
80-
testUser = Instancio.of(modelGenerator.getUserModel())
81-
.create();
78+
testUser = Instancio.of(modelGenerator.getUserModel()).create();
8279
userRepository.save(testUser);
80+
token = jwt().jwt(builder -> builder.subject(testUser.getEmail()));
8381
}
8482

8583
@Test
@@ -109,7 +107,7 @@ public void testCreate() throws Exception {
109107
mockMvc.perform(request)
110108
.andExpect(status().isCreated());
111109

112-
var user = userRepository.findByEmail(data.getEmail()).get();
110+
var user = userRepository.findByEmail(data.getEmail()).orElse(null);
113111

114112
assertNotNull(user);
115113
assertThat(user.getFirstName()).isEqualTo(data.getFirstName());
@@ -130,7 +128,7 @@ public void testUpdate() throws Exception {
130128
mockMvc.perform(request)
131129
.andExpect(status().isOk());
132130

133-
var user = userRepository.findById(testUser.getId()).get();
131+
var user = userRepository.findById(testUser.getId()).orElseThrow();
134132
assertThat(user.getFirstName()).isEqualTo(("Mike"));
135133
}
136134

0 commit comments

Comments
 (0)