Skip to content
This repository was archived by the owner on Dec 27, 2024. It is now read-only.

Commit cd8c00b

Browse files
dev/codeforces/ Актуализировал тесты
1 parent 2b176b6 commit cd8c00b

File tree

5 files changed

+91
-51
lines changed

5 files changed

+91
-51
lines changed

src/main/java/com/cf/cfteam/controllers/codeforces/GroupController.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package com.cf.cfteam.controllers.codeforces;
22

3-
import com.cf.cfteam.models.entities.codeforces.Group;
43
import com.cf.cfteam.services.codeforces.GroupService;
54
import com.cf.cfteam.transfer.payloads.codeforces.GroupPayload;
5+
import com.cf.cfteam.transfer.responses.codeforces.GroupResponse;
66
import lombok.RequiredArgsConstructor;
77
import org.springframework.http.ResponseEntity;
88
import org.springframework.security.core.Authentication;
@@ -18,28 +18,28 @@ public class GroupController {
1818
private final GroupService groupService;
1919

2020
@GetMapping("/user/{userId}")
21-
public ResponseEntity<List<Group>> getAllGroupsByUser(@PathVariable Long userId, Authentication authentication) {
22-
List<Group> groups = groupService.getAllGroupsByUser(userId);
21+
public ResponseEntity<List<GroupResponse>> getAllGroupsByUser(@PathVariable Long userId, Authentication authentication) {
22+
List<GroupResponse> groups = groupService.getAllGroupsByUser(userId);
2323
return ResponseEntity.ok(groups);
2424
}
2525

2626
@GetMapping("/{groupId}")
27-
public ResponseEntity<Group> getGroupById(@PathVariable Long groupId, Authentication authentication) {
28-
Group group = groupService.getGroupById(groupId);
27+
public ResponseEntity<GroupResponse> getGroupById(@PathVariable Long groupId, Authentication authentication) {
28+
GroupResponse group = groupService.getGroupById(groupId);
2929
return ResponseEntity.ok(group);
3030
}
3131

3232
@PostMapping("/user/{userId}")
33-
public ResponseEntity<Group> addGroupToUser(@PathVariable Long userId, @RequestBody GroupPayload groupPayload,
33+
public ResponseEntity<GroupResponse> addGroupToUser(@PathVariable Long userId, @RequestBody GroupPayload groupPayload,
3434
Authentication authentication) {
35-
Group createdGroup = groupService.addGroupToUser(userId, groupPayload);
35+
GroupResponse createdGroup = groupService.addGroupToUser(userId, groupPayload);
3636
return ResponseEntity.ok(createdGroup);
3737
}
3838

3939
@PutMapping("/{groupId}")
40-
public ResponseEntity<Group> updateGroup(@PathVariable Long groupId, @RequestBody GroupPayload groupPayload,
40+
public ResponseEntity<GroupResponse> updateGroup(@PathVariable Long groupId, @RequestBody GroupPayload groupPayload,
4141
Authentication authentication) {
42-
Group group = groupService.updateGroup(groupId, groupPayload);
42+
GroupResponse group = groupService.updateGroup(groupId, groupPayload);
4343
return ResponseEntity.ok(group);
4444
}
4545

src/test/java/com/cf/cfteam/controllers/codeforces/GroupControllerIntegrationTest.java

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.cf.cfteam.controllers.codeforces;
22

3+
import com.cf.cfteam.transfer.responses.codeforces.GroupResponse;
4+
import com.cf.cfteam.utils.codeforces.mappers.GroupMapper;
35
import com.fasterxml.jackson.core.type.TypeReference;
46
import com.cf.cfteam.BaseIntegrationTest;
57
import com.cf.cfteam.models.entities.codeforces.Group;
@@ -35,6 +37,9 @@ public class GroupControllerIntegrationTest extends BaseIntegrationTest {
3537
@Autowired
3638
private UserRepository userRepository;
3739

40+
@Autowired
41+
private GroupMapper groupMapper;
42+
3843
@Test
3944
@SneakyThrows
4045
public void getAllGroupsByUser_notEmpty_success() {
@@ -55,12 +60,12 @@ public void getAllGroupsByUser_notEmpty_success() {
5560

5661
var groups = objectMapper.readValue(
5762
mvcResponse.getContentAsString(),
58-
new TypeReference<List<Group>>() {
63+
new TypeReference<List<GroupResponse>>() {
5964
}
6065
);
6166

6267
assertThat(groups).hasSize(1)
63-
.contains(group);
68+
.contains(groupMapper.fromEntityToResponse(group));
6469

6570
deleteGroupFromDb(group);
6671
deleteUserFromDb(user);
@@ -98,9 +103,9 @@ public void getGroupById_notEmpty() {
98103
.andReturn()
99104
.getResponse();
100105

101-
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), Group.class);
106+
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), GroupResponse.class);
102107

103-
assertThat(responseGroupe).isEqualTo(group);
108+
assertThat(responseGroupe).isEqualTo(groupMapper.fromEntityToResponse(group));
104109

105110
deleteGroupFromDb(group);
106111
deleteUserFromDb(user);
@@ -139,14 +144,13 @@ public void addGroupToUser_success() {
139144
.andReturn()
140145
.getResponse();
141146

142-
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), Group.class);
143-
var groupFromDb = groupRepository.findById(responseGroupe.getId());
147+
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), GroupResponse.class);
148+
var groupFromDb = groupRepository.findById(responseGroupe.id());
144149

145150
assertAll(
146151
() -> assertThat(groupFromDb).isPresent(),
147-
() -> assertThat(groupFromDb.get()).isEqualTo(responseGroupe),
148-
() -> assertThat(responseGroupe.getDescription()).isEqualTo(payload.description()),
149-
() -> assertThat(responseGroupe.getName()).isEqualTo(payload.name())
152+
() -> assertThat(responseGroupe.description()).isEqualTo(payload.description()),
153+
() -> assertThat(responseGroupe.name()).isEqualTo(payload.name())
150154
);
151155

152156
deleteGroupFromDb(groupFromDb.get());
@@ -195,8 +199,8 @@ public void updateGroup_success() {
195199
.getResponse();
196200

197201

198-
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), Group.class);
199-
var groupFromDb = groupRepository.findById(responseGroupe.getId());
202+
var responseGroupe = objectMapper.readValue(mvcResponse.getContentAsString(), GroupResponse.class);
203+
var groupFromDb = groupRepository.findById(responseGroupe.id());
200204

201205
assertAll(
202206
() -> assertThat(groupFromDb).isPresent(),
@@ -287,7 +291,7 @@ public void deleteAllGroupsByUser_success() {
287291

288292
var groups = objectMapper.readValue(
289293
mvcResponse.getContentAsString(),
290-
new TypeReference<List<Group>>() {
294+
new TypeReference<List<GroupResponse>>() {
291295
}
292296
);
293297

src/test/java/com/cf/cfteam/controllers/codeforces/GroupControllerTest.java

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.cf.cfteam.models.entities.codeforces.Group;
44
import com.cf.cfteam.services.codeforces.GroupService;
55
import com.cf.cfteam.transfer.payloads.codeforces.GroupPayload;
6+
import com.cf.cfteam.transfer.responses.codeforces.GroupResponse;
7+
import com.cf.cfteam.utils.codeforces.mappers.GroupMapper;
68
import org.junit.jupiter.api.BeforeEach;
79
import org.junit.jupiter.api.Test;
810
import org.mockito.InjectMocks;
@@ -23,75 +25,84 @@ class GroupControllerTest {
2325
@InjectMocks
2426
private GroupController groupController;
2527

28+
@Mock
29+
private GroupMapper groupMapper;
30+
2631
@Mock
2732
private GroupService groupService;
2833

2934
private GroupPayload groupPayload;
30-
private Group group;
35+
// private Group group;
36+
private GroupResponse groupResponse;
3137

3238
@BeforeEach
3339
void setUp() {
3440
MockitoAnnotations.openMocks(this);
3541

36-
group = Group.builder()
42+
// group = Group.builder()
43+
// .name("Test Group")
44+
// .description("Test description")
45+
// .user(null)
46+
// .build();
47+
48+
groupPayload = GroupPayload.builder()
3749
.name("Test Group")
3850
.description("Test description")
39-
.user(null)
4051
.build();
4152

42-
groupPayload = GroupPayload.builder()
53+
groupResponse = GroupResponse.builder()
4354
.name("Test Group")
4455
.description("Test description")
56+
.teams(null)
4557
.build();
4658
}
4759

4860
@Test
4961
void shouldReturnGroupsByUserId() {
50-
when(groupService.getAllGroupsByUser(1L)).thenReturn(List.of(group));
62+
when(groupService.getAllGroupsByUser(1L)).thenReturn(List.of(groupResponse));
5163

52-
List<Group> groups = groupController.getAllGroupsByUser(1L, null).getBody();
64+
List<GroupResponse> groups = groupController.getAllGroupsByUser(1L, null).getBody();
5365

5466
verify(groupService, times(1)).getAllGroupsByUser(1L);
5567

5668
assertThat(groups)
5769
.isNotNull()
5870
.hasSize(1)
59-
.contains(group);
71+
.contains(groupResponse);
6072
}
6173

6274
@Test
6375
void shouldReturnGroupById() {
64-
when(groupService.getGroupById(1L)).thenReturn(group);
76+
when(groupService.getGroupById(1L)).thenReturn(groupResponse);
6577

66-
Group result = groupController.getGroupById(1L, null).getBody();
78+
GroupResponse result = groupController.getGroupById(1L, null).getBody();
6779

6880
verify(groupService, times(1)).getGroupById(1L);
69-
assertThat(result).isEqualTo(group);
81+
assertThat(result).isEqualTo(groupResponse);
7082
}
7183

7284
@Test
7385
void shouldAddGroupToUser() {
74-
when(groupService.addGroupToUser(1L, groupPayload)).thenReturn(group);
75-
86+
when(groupService.addGroupToUser(1L, groupPayload)).thenReturn(groupResponse);
7687

77-
Group result = groupController.addGroupToUser(1L, groupPayload, null).getBody();
88+
GroupResponse result = groupController.addGroupToUser(1L, groupPayload, null).getBody();
7889

7990
verify(groupService, times(1)).addGroupToUser(1L, groupPayload);
8091

81-
assertThat(result).isEqualTo(group);
92+
assertThat(result).isEqualTo(groupResponse);
8293
}
8394

8495
@Test
8596
void shouldUpdateGroup() {
86-
when(groupService.updateGroup(1L, groupPayload)).thenReturn(group);
97+
when(groupService.updateGroup(1L, groupPayload)).thenReturn(groupResponse);
8798

88-
Group result = groupController.updateGroup(1L, groupPayload, null).getBody();
99+
GroupResponse result = groupController.updateGroup(1L, groupPayload, null).getBody();
89100

90101
verify(groupService, times(1)).updateGroup(1L, groupPayload);
91102
assertAll(
92103
() -> assertThat(result).isNotNull(),
93-
() -> assertThat(result.getName()).isEqualTo(groupPayload.name()),
94-
() -> assertThat(result.getDescription()).isEqualTo(groupPayload.description())
104+
() -> assertThat(result.name()).isEqualTo(groupPayload.name()),
105+
() -> assertThat(result.description()).isEqualTo(groupPayload.description())
95106
);
96107
}
97108

src/test/java/com/cf/cfteam/services/codeforces/GroupServiceTest.java

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.cf.cfteam.repositories.jpa.codeforces.GroupRepository;
99
import com.cf.cfteam.repositories.jpa.security.UserRepository;
1010
import com.cf.cfteam.transfer.payloads.codeforces.GroupPayload;
11+
import com.cf.cfteam.transfer.responses.codeforces.GroupResponse;
12+
import com.cf.cfteam.utils.codeforces.mappers.GroupMapper;
1113
import org.junit.jupiter.api.BeforeEach;
1214
import org.junit.jupiter.api.Test;
1315
import org.mockito.InjectMocks;
@@ -36,9 +38,13 @@ class GroupServiceTest {
3638
@Mock
3739
private UserRepository userRepository;
3840

41+
@Mock
42+
private GroupMapper groupMapper;
43+
3944
private User user;
4045
private Group group;
4146
private GroupPayload groupPayload;
47+
private GroupResponse groupResponse;
4248

4349
@BeforeEach
4450
void setUp() {
@@ -61,17 +67,24 @@ void setUp() {
6167
.name("Test Group")
6268
.description("Test description")
6369
.build();
70+
71+
groupResponse = GroupResponse.builder()
72+
.name("Test Group")
73+
.description("Test description")
74+
.teams(null)
75+
.build();
6476
}
6577

6678
@Test
6779
void getAllGroupsByUser_ShouldReturnGroups_WhenUserExists() {
6880
when(userRepository.findById(1L)).thenReturn(Optional.of(user));
6981
when(groupRepository.findByUser(user)).thenReturn(List.of(group));
82+
when(groupMapper.fromEntityToResponse(group)).thenReturn(groupResponse);
7083

7184
var groups = groupService.getAllGroupsByUser(1L);
7285

7386
assertThat(groups).hasSize(1)
74-
.contains(group);
87+
.contains(groupResponse);
7588
}
7689

7790
@Test
@@ -86,10 +99,11 @@ void getAllGroupsByUser_ShouldThrowUserNotFoundException_WhenUserDoesNotExist()
8699
@Test
87100
void getGroupById_ShouldReturnGroup_WhenGroupExists() {
88101
when(groupRepository.findById(1L)).thenReturn(Optional.of(group));
102+
when(groupMapper.fromEntityToResponse(group)).thenReturn(groupResponse);
89103

90104
var result = groupService.getGroupById(1L);
91105

92-
assertThat(result).isEqualTo(group);
106+
assertThat(result).isEqualTo(groupResponse);
93107
}
94108

95109
@Test
@@ -105,10 +119,12 @@ void getGroupById_ShouldThrowGroupNotFoundException_WhenGroupDoesNotExist() {
105119
void addGroupToUser_ShouldAddGroup_WhenUserExists() {
106120
when(userRepository.findById(1L)).thenReturn(Optional.of(user));
107121
when(groupRepository.save(any(Group.class))).thenReturn(group);
122+
when(groupMapper.fromEntityToResponse(group)).thenReturn(groupResponse);
123+
when(groupMapper.fromPayloadToEntity(groupPayload, user)).thenReturn(group);
108124

109125
var result = groupService.addGroupToUser(1L, groupPayload);
110126

111-
assertThat(result).isEqualTo(group);
127+
assertThat(result).isEqualTo(groupResponse);
112128
verify(groupRepository, times(1)).save(any(Group.class));
113129
}
114130

@@ -125,17 +141,14 @@ void addGroupToUser_ShouldThrowUserNotFoundException_WhenUserDoesNotExist() {
125141
void updateGroup_ShouldUpdateGroup_WhenGroupExists() {
126142
when(groupRepository.findById(1L)).thenReturn(Optional.of(group));
127143
when(groupRepository.save(any(Group.class))).thenReturn(group);
128-
129-
groupPayload = GroupPayload.builder()
130-
.name("NEW Test Group")
131-
.description("NEW Test description")
132-
.build();
144+
when(groupMapper.fromEntityToResponse(group)).thenReturn(groupResponse);
145+
when(groupMapper.updateEntityFromPayload(group, groupPayload)).thenReturn(group);
133146

134147
var result = groupService.updateGroup(1L, groupPayload);
135148

136149
assertAll(
137-
() -> assertThat(result.getDescription()).isEqualTo(groupPayload.description()),
138-
() -> assertThat(result.getName()).isEqualTo(group.getName())
150+
() -> assertThat(result.description()).isEqualTo(groupPayload.description()),
151+
() -> assertThat(result.name()).isEqualTo(group.getName())
139152
);
140153
verify(groupRepository, times(1)).save(any(Group.class));
141154
}

src/test/java/com/cf/cfteam/utils/codeforces/GroupMapperTest.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,27 @@
44
import com.cf.cfteam.models.entities.security.Role;
55
import com.cf.cfteam.models.entities.security.User;
66
import com.cf.cfteam.transfer.payloads.codeforces.GroupPayload;
7+
import com.cf.cfteam.utils.codeforces.mappers.GroupMapper;
8+
import com.cf.cfteam.utils.codeforces.mappers.TeamMapper;
79
import org.junit.jupiter.api.Test;
10+
import org.junit.jupiter.api.extension.ExtendWith;
11+
import org.mockito.InjectMocks;
12+
import org.mockito.Spy;
13+
import org.mockito.junit.jupiter.MockitoExtension;
14+
import org.springframework.beans.factory.annotation.Autowired;
15+
import org.springframework.boot.test.context.SpringBootTest;
816
import org.springframework.test.context.ActiveProfiles;
917

1018
import static org.assertj.core.api.Assertions.assertThat;
1119
import static org.junit.jupiter.api.Assertions.*;
1220

1321
@ActiveProfiles("test")
22+
@ExtendWith(MockitoExtension.class)
1423
class GroupMapperTest {
1524

25+
@InjectMocks
26+
private GroupMapper groupMapper;
27+
1628
@Test
1729
void shouldMapPayloadToEntity() {
1830
GroupPayload payload = GroupPayload.builder()
@@ -27,7 +39,7 @@ void shouldMapPayloadToEntity() {
2739
.build();
2840

2941

30-
Group group = GroupMapper.fromPayloadToEntity(payload, user);
42+
Group group = groupMapper.fromPayloadToEntity(payload, user);
3143

3244
assertAll(
3345
() -> assertThat(group).isNotNull(),
@@ -49,7 +61,7 @@ void shouldUpdateEntityFromPayload() {
4961
.description("NewDescription")
5062
.build();
5163

52-
Group updatedGroup = GroupMapper.updateEntityFromPayload(group, payload);
64+
Group updatedGroup = groupMapper.updateEntityFromPayload(group, payload);
5365

5466
assertAll(
5567
() -> assertThat(updatedGroup).isNotNull(),

0 commit comments

Comments
 (0)