Skip to content

Commit 3ce1f47

Browse files
authored
Merge pull request #53 from labens-ufrn/fix/unit_tests_team
Fix/unit tests team
2 parents b367e81 + a82533d commit 3ce1f47

File tree

8 files changed

+101
-41
lines changed

8 files changed

+101
-41
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
<dependency>
101101
<groupId>mysql</groupId>
102102
<artifactId>mysql-connector-java</artifactId>
103-
<version>[8.0.16,)</version>
103+
<version>[8.0.22,)</version>
104104
<scope>runtime</scope>
105105
</dependency>
106106
<dependency>

src/main/java/br/ufrn/dct/apf/configuration/WebMvcConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
2222
@Value("${spring.datasource.url}")
2323
private String jdbcURl;
2424

25-
@Value("${spring.datasource.driverclassname}")
25+
@Value("${spring.datasource.driverClassName}")
2626
private String driverDB;
2727

2828
@Value("${spring.datasource.username}")

src/main/java/br/ufrn/dct/apf/model/Member.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,4 @@ public boolean equals(Object obj) {
113113
return other.user == null;
114114
} else return user.equals(other.user);
115115
}
116-
117-
118116
}

src/main/java/br/ufrn/dct/apf/service/MemberService.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,28 @@ public Member findOne(Long id) {
2424
return repository.findById(id).orElse(null);
2525
}
2626

27+
/**
28+
* Checks whether the member object is already part of the team, if not, the object is saved.
29+
* If the member is already linked to the project, it returns the member instance.
30+
* @param member A member instance with no id.
31+
* @return the member instance.
32+
* @throws BusinessRuleException If the parameter is null.
33+
*/
2734
public Member save(Member member) throws BusinessRuleException {
2835
checkMemberNull(member);
29-
30-
if (isMember(member.getProject().getId(), member.getUser().getId())) {
36+
Member memberDB = getMember(member.getProject().getId(), member.getUser().getId());
37+
if (isNull(memberDB)) {
3138
return repository.saveAndFlush(member);
3239
}
33-
34-
return member;
40+
return memberDB;
3541
}
3642

37-
public Member getMember(Long projectId, Long memberId) {
38-
return repository.findByProjectIdAndUserId(projectId, memberId);
43+
public Member getMember(Long projectId, Long userId) {
44+
return repository.findByProjectIdAndUserId(projectId, userId);
3945
}
4046

41-
public Boolean isMember(Long projectId, Long memberId) {
42-
return getMember(projectId, memberId) != null;
47+
public Boolean isMember(Long projectId, Long userId) {
48+
return getMember(projectId, userId) != null;
4349
}
4450

4551
public List<Member> getMembersByProject(Long projectId) {

src/main/resources/application.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ spring.datasource.username = apf_user
66
spring.datasource.password = 12345
77
spring.datasource.testWhileIdle = true
88
spring.datasource.validationQuery = SELECT 1
9-
spring.datasource.driverclassname = com.mysql.cj.jdbc.Driver
9+
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
1010

1111
# ===============================
1212
# = JPA / HIBERNATE
@@ -34,7 +34,7 @@ spring.thymeleaf.cache=false
3434
# Context path of the application.
3535
server.servlet.context-path=/apf
3636
# Display name of the application.
37-
server.display-name=Analisador de Pontos de Função
37+
server.servlet.application-display-name=Analisador de Pontos de Função
3838
# Define server port.
3939
server.port=8080
4040

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package br.ufrn.dct.apf.controller;
2+
3+
import org.springframework.beans.factory.annotation.Autowired;
4+
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
5+
import org.springframework.boot.test.mock.mockito.MockBean;
6+
import org.springframework.test.web.servlet.MockMvc;
7+
import org.testng.annotations.AfterMethod;
8+
import org.testng.annotations.BeforeMethod;
9+
import org.testng.annotations.Test;
10+
import org.testng.asserts.SoftAssert;
11+
12+
import br.ufrn.dct.apf.service.ProjectService;
13+
import br.ufrn.dct.apf.service.UserService;
14+
15+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
16+
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
17+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
18+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
19+
import static org.hamcrest.Matchers.containsString;
20+
21+
@WebMvcTest(LoginController.class)
22+
public class LoginControllerTest extends AbstractControllerTest {
23+
24+
private SoftAssert softAssert;
25+
26+
@BeforeMethod
27+
public void startTest() {
28+
softAssert = new SoftAssert();
29+
}
30+
31+
@AfterMethod
32+
public void endTest() {
33+
softAssert = null;
34+
}
35+
36+
@Autowired
37+
private MockMvc mockMvc;
38+
39+
@MockBean
40+
private UserService userService;
41+
42+
@MockBean
43+
private ProjectService projectService;
44+
45+
@Test
46+
public void getRootURL() throws Exception {
47+
softAssert.assertNotNull(mockMvc);
48+
mockMvc.perform(get("/"))
49+
.andDo(print())
50+
.andExpect(status().isOk())
51+
.andExpect(content().string(containsString("action=\"/login\"")));
52+
}
53+
54+
@Test
55+
public void getRegistrationURL() throws Exception {
56+
softAssert.assertNotNull(mockMvc);
57+
mockMvc.perform(get("/registration"))
58+
.andDo(print())
59+
.andExpect(status().isOk());
60+
}
61+
}

src/test/java/br/ufrn/dct/apf/controller/UserStoryControllerTest.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,19 @@ public class UserStoryControllerTest extends AbstractControllerTest {
2525
@Autowired
2626
private MockMvc mockMvc;
2727

28-
@Autowired
28+
@MockBean
2929
private UserStoryService userStoryService;
3030

3131
@MockBean
32-
private UserStoryService service;
32+
private ProjectService projectService;
3333

3434
@MockBean
3535
private UserService userService;
36-
37-
@MockBean
38-
private ProjectService projectService;
39-
36+
4037
@Test
4138
public void listFromService() throws Exception {
42-
List<UserStory> value = new ArrayList<>();
43-
System.err.println(userStoryService);
44-
when(userStoryService.findAll()).thenReturn(value);
39+
//List<UserStory> value = new ArrayList<>();
40+
//when(userStoryService.findAll()).thenReturn(value);
4541

4642
mockMvc.perform(get("/us/list"))
4743
.andDo(print())

src/test/java/br/ufrn/dct/apf/service/TeamServiceTest.java

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ public class TeamServiceTest extends AbstractTestNGSpringContextTests {
3737
private Project p1;
3838
private User analista, desenvolvedor, dev2;
3939
private Member m1, m2;
40-
private Attribution projectOwner, projectDev;
4140

4241
@BeforeMethod
4342
public void startTest() throws BusinessRuleException {
@@ -61,15 +60,6 @@ public void startTest() throws BusinessRuleException {
6160
dev2.setEmail("dev2@gmai.com");
6261
dev2.setPassword("12345");
6362

64-
projectOwner = new Attribution();
65-
projectOwner.setName(Attribution.PROJECT_MANAGER);
66-
67-
projectDev = new Attribution();
68-
projectDev.setName(Attribution.PROJECT_DEV);
69-
70-
attribRepository.save(projectOwner);
71-
attribRepository.save(projectDev);
72-
7363
userService.save(analista);
7464
userService.save(desenvolvedor);
7565

@@ -89,8 +79,6 @@ public void endTest() {
8979
projectService.delete(p1.getId());
9080
userService.delete(analista.getId());
9181
userService.delete(desenvolvedor.getId());
92-
attribRepository.deleteById(projectOwner.getId());
93-
attribRepository.deleteById(projectDev.getId());
9482
p1 = null;
9583
}
9684

@@ -129,20 +117,19 @@ public void findOne() {
129117
softAssert.assertEquals(found.getAttribution().getName(), Attribution.PROJECT_MANAGER, "T07 - Equals:");
130118

131119
Attribution attribManager = attribRepository.findById(1).orElse(null);
132-
Attribution attribOwner = attribRepository.findByName(Attribution.PROJECT_MANAGER);
120+
Attribution attribMember = attribRepository.findByName(Attribution.PROJECT_MEMBER);
133121

134122
softAssert.assertTrue(found.getAttribution().equals(attribManager), "T08 - Equals:");
135-
softAssert.assertFalse(found.getAttribution().equals(attribOwner), "T09 - Equals:");
123+
softAssert.assertFalse(found.getAttribution().equals(attribMember), "T09 - Equals:");
136124
softAssert.assertFalse(found.getAttribution().equals(null), "T10 - Equals:");
137-
softAssert.assertTrue(projectOwner.equals(projectOwner), "T11 - Equals:");
138-
softAssert.assertTrue(projectOwner.equals(attribOwner), "T12 - Equals:");
125+
//softAssert.assertTrue(attribMember.equals(attribManager), "T11 - Equals:");
139126

140127
List<Attribution> atts = attribRepository.findAll();
141128

142129
softAssert.assertNotNull(atts, "T13 - NotNull:");
143-
softAssert.assertEquals(atts.size(), 4, "T14 - Equals:");
130+
softAssert.assertEquals(atts.size(), 2, "T14 - Equals:");
144131

145-
softAssert.assertNotNull(attribOwner.hashCode(), "T15 - Equals:");
132+
softAssert.assertNotNull(attribMember.hashCode(), "T15 - Equals:");
146133

147134
softAssert.assertAll();
148135
}
@@ -231,6 +218,13 @@ public void save() throws BusinessRuleException {
231218
softAssert.assertAll();
232219
}
233220

221+
@Test(expectedExceptions = BusinessRuleException.class,
222+
expectedExceptionsMessageRegExp = "error.member.service.member.is.null")
223+
public void saveMemberNull() throws BusinessRuleException {
224+
Member isNull = null;
225+
memberService.save(isNull);
226+
}
227+
234228
@Test
235229
public void saveMember() throws BusinessRuleException {
236230

@@ -287,6 +281,8 @@ public void saveMember() throws BusinessRuleException {
287281
softAssert.assertTrue(team2.contains(t02), "T05.4 - True:");
288282
softAssert.assertTrue(team2.contains(m1), "T05.5 - True:");
289283
softAssert.assertTrue(team2.contains(m2), "T05.6 - True:");
284+
softAssert.assertTrue(memberService.isMember(p1.getId(), m1.getUser().getId()), "T05.7 - True:");
285+
softAssert.assertTrue(memberService.isMember(p1.getId(), m2.getUser().getId()), "T05.8 - True:");
290286

291287
List<Project> projectByDev = projectService.findByUserId(desenvolvedor.getId());
292288
softAssert.assertEquals(projectByDev.size(), 1, "T06 - Equals:");
@@ -298,6 +294,9 @@ public void saveMember() throws BusinessRuleException {
298294
Project project = projectByDev.get(0);
299295
softAssert.assertEquals(project.getId(), p1.getId(), "T07 - Equals:");
300296

297+
List<Member> listMembers = memberService.getMembersByProject(p1.getId());
298+
softAssert.assertEquals(listMembers.size(), 2, "T08 - Equals:");
299+
301300
memberService.delete(m1.getId());
302301
memberService.delete(m2.getId());
303302

0 commit comments

Comments
 (0)