Revize 527af170
Přidáno uživatelem Václav Hrabík před asi 2 roky(ů)
pom.xml | ||
---|---|---|
140 | 140 |
<artifactId>spring-security-test</artifactId> |
141 | 141 |
<scope>test</scope> |
142 | 142 |
</dependency> |
143 |
<dependency> |
|
144 |
<groupId>junit</groupId> |
|
145 |
<artifactId>junit</artifactId> |
|
146 |
<scope>test</scope> |
|
147 |
</dependency> |
|
148 |
<dependency> |
|
149 |
<groupId>org.mockito</groupId> |
|
150 |
<artifactId>mockito-inline</artifactId> |
|
151 |
<version>4.3.1</version> |
|
152 |
<scope>test</scope> |
|
153 |
</dependency> |
|
143 | 154 |
|
144 |
</dependencies>
|
|
155 |
</dependencies>
|
|
145 | 156 |
|
146 | 157 |
<build> |
147 | 158 |
<plugins> |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/OAuthServiceImpl.java | ||
---|---|---|
23 | 23 |
* Service which communicate with OAuth application |
24 | 24 |
*/ |
25 | 25 |
@Service |
26 |
public class OAuthServiceImpl implements OAuthService, UserDetailsService, AuthenticationEntryPoint {
|
|
26 |
public class OAuthServiceImpl implements OAuthService, UserDetailsService { |
|
27 | 27 |
|
28 | 28 |
/** |
29 | 29 |
* URL path to authenticate endpoint of OAuth application |
... | ... | |
49 | 49 |
@Autowired |
50 | 50 |
private UserService userService; |
51 | 51 |
|
52 |
@Override |
|
53 |
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) |
|
54 |
throws IOException, ServletException { |
|
55 |
String authorizationHeader = request.getHeader("Authorization"); |
|
56 |
if (authorizationHeader == null || authorizationHeader.length() < 7) { |
|
57 |
return; |
|
58 |
} |
|
59 |
String token = authorizationHeader.substring(7); |
|
60 |
|
|
61 |
ResponseEntity<String> responseEntity = authenticate(token); |
|
62 |
if (token != null && responseEntity.getBody().contains("OK")) { |
|
63 |
// Token is valid, proceed with the request |
|
64 |
response.setStatus(501); |
|
65 |
} else { |
|
66 |
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); |
|
67 |
} |
|
68 |
} |
|
52 |
|
|
53 |
private RequestBuilder requestBuilder = new RequestBuilder(); |
|
69 | 54 |
|
70 | 55 |
public ResponseEntity<String> authenticate(String token) { |
71 | 56 |
|
72 |
return RequestBuilder.sendRequestResponse(AUTH_URL_AUTH, token);
|
|
57 |
return requestBuilder.sendRequestResponse(AUTH_URL_AUTH, token);
|
|
73 | 58 |
} |
74 | 59 |
|
75 | 60 |
public ResponseEntity<String> loginUser(User user) { |
... | ... | |
83 | 68 |
|
84 | 69 |
requestBody.put("name", userName); |
85 | 70 |
|
86 |
return RequestBuilder.sendRequestResponse(AUTH_URL_LOGIN, requestBody);
|
|
71 |
return requestBuilder.sendRequestResponse(AUTH_URL_LOGIN, requestBody);
|
|
87 | 72 |
} |
88 | 73 |
|
89 | 74 |
public ResponseEntity<String> logoutUser(User user) { |
... | ... | |
100 | 85 |
requestBody.put("name", userName); |
101 | 86 |
requestBody.put("token", token); |
102 | 87 |
|
103 |
return RequestBuilder.sendRequestResponse(AUTH_URL_LOGOUT, requestBody);
|
|
88 |
return requestBuilder.sendRequestResponse(AUTH_URL_LOGOUT, requestBody);
|
|
104 | 89 |
} |
105 | 90 |
|
106 | 91 |
@Override |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserService.java | ||
---|---|---|
21 | 21 |
* @return Integer - status code of the operation, ie 1 - successful, 0 - failed, .... |
22 | 22 |
*/ |
23 | 23 |
public UserModelStatusCodes verifyUser(User user); |
24 |
/** |
|
25 |
* Method attempts to log out a user |
|
26 |
* @param user serialized JSON object representing user |
|
27 |
* @return Integer - status code of the operation, ie 1 - successful, 0 - failed, .... |
|
28 |
*/ |
|
29 |
public UserModelStatusCodes logoutUser(User user); |
|
30 | 24 |
|
31 | 25 |
public User getUserByName(String name); |
32 | 26 |
|
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserServiceImpl.java | ||
---|---|---|
89 | 89 |
* @param password password from client |
90 | 90 |
* @return hashed password for database |
91 | 91 |
*/ |
92 |
private String hashPassword(String password) {
|
|
92 |
public String hashPassword(String password) {
|
|
93 | 93 |
//standard java security encryption module |
94 | 94 |
MessageDigest digest = null; |
95 | 95 |
try { |
... | ... | |
142 | 142 |
return hash.equals(passwordHash); |
143 | 143 |
} |
144 | 144 |
|
145 |
/** |
|
146 |
* Methods invalidates JWT token in OAuth application |
|
147 |
* @param user serialized JSON object representing user |
|
148 |
* @return UserModelStatusCodes user logged out status flag |
|
149 |
*/ |
|
150 |
@Override |
|
151 |
public UserModelStatusCodes logoutUser(User user) { |
|
152 |
//TODO with OAuth app |
|
153 |
return UserModelStatusCodes.USER_LOGGED_OUT; |
|
154 |
} |
|
155 |
|
|
156 | 145 |
@Override |
157 | 146 |
public User getUserByName(String name) { |
158 | 147 |
return this.userRepository.findByName(name); |
src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/RequestBuilder.java | ||
---|---|---|
1 | 1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils; |
2 | 2 |
|
3 |
import org.springframework.stereotype.Component; |
|
3 | 4 |
import org.springframework.web.client.RestTemplate; |
4 | 5 |
|
5 | 6 |
import java.util.HashMap; |
... | ... | |
15 | 16 |
|
16 | 17 |
private static Logger logger = Logger.getLogger(RequestBuilder.class.getName()); |
17 | 18 |
|
19 |
public RequestBuilder() { |
|
20 |
} |
|
18 | 21 |
|
19 |
public static ResponseEntity<String> sendRequestResponse(String url, HashMap<String,String> body) {
|
|
22 |
public ResponseEntity<String> sendRequestResponse(String url, HashMap<String, String> body) {
|
|
20 | 23 |
RestTemplate restTemplate = new RestTemplate(); |
21 | 24 |
String json = JSONBuilder.buildJson(body); |
22 | 25 |
|
... | ... | |
26 | 29 |
return restTemplate.postForEntity(url, entity, String.class); |
27 | 30 |
} |
28 | 31 |
|
29 |
public static ResponseEntity<String> sendRequestResponse(String url, String token) {
|
|
32 |
public ResponseEntity<String> sendRequestResponse(String url, String token) { |
|
30 | 33 |
RestTemplate restTemplate = new RestTemplate(); |
31 | 34 |
|
32 | 35 |
HttpHeaders headers = new HttpHeaders(); |
src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserControllerTest.java | ||
---|---|---|
137 | 137 |
assertEquals(HttpStatus.UNAUTHORIZED.value(), response.getStatus()); |
138 | 138 |
} |
139 | 139 |
|
140 |
@Test |
|
141 |
public void logoutUser() throws Exception { |
|
142 |
Mockito.when(userService.logoutUser(any())).thenReturn(UserModelStatusCodes.USER_LOGGED_OUT); |
|
143 |
HashMap<String,String> map = new HashMap<>(); |
|
144 |
map.put("name","pepa"); |
|
145 |
map.put("password","ahojSvete"); |
|
146 |
map.put("email","yxz"); |
|
147 |
String json = JSONBuilder.buildJson(map); |
|
148 |
RequestBuilder requestBuilder = MockMvcRequestBuilders |
|
149 |
.post("/v2/user/logout") |
|
150 |
.accept(MediaType.APPLICATION_JSON).content(json) |
|
151 |
.contentType(MediaType.APPLICATION_JSON); |
|
152 |
|
|
153 |
MvcResult result = mockMvc.perform(requestBuilder).andReturn(); |
|
154 |
|
|
155 |
MockHttpServletResponse response = result.getResponse(); |
|
156 |
|
|
157 |
assertEquals(HttpStatus.OK.value(), response.getStatus()); |
|
158 |
} |
|
159 |
|
|
160 |
|
|
161 |
|
|
162 | 140 |
} |
src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/OAuthServiceImplTest.java | ||
---|---|---|
1 |
package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service; |
|
2 |
|
|
3 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; |
|
4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; |
|
5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.RequestBuilder; |
|
6 |
import org.junit.Test; |
|
7 |
import org.junit.runner.RunWith; |
|
8 |
import org.mockito.MockedStatic; |
|
9 |
import org.mockito.Mockito; |
|
10 |
import org.springframework.beans.factory.annotation.Autowired; |
|
11 |
import org.springframework.boot.test.context.SpringBootTest; |
|
12 |
import org.springframework.boot.test.mock.mockito.MockBean; |
|
13 |
import org.springframework.http.HttpStatus; |
|
14 |
import org.springframework.http.ResponseEntity; |
|
15 |
import org.springframework.test.context.junit4.SpringRunner; |
|
16 |
import java.util.HashMap; |
|
17 |
import java.util.Map; |
|
18 |
|
|
19 |
import static org.junit.jupiter.api.Assertions.assertEquals; |
|
20 |
import static org.mockito.ArgumentMatchers.*; |
|
21 |
import static org.mockito.Mockito.mock; |
|
22 |
import static org.mockito.Mockito.when; |
|
23 |
|
|
24 |
@RunWith(SpringRunner.class) |
|
25 |
@SpringBootTest |
|
26 |
public class OAuthServiceImplTest { |
|
27 |
|
|
28 |
@Autowired |
|
29 |
private OAuthService oAuthService; |
|
30 |
|
|
31 |
@MockBean |
|
32 |
private RequestBuilder requestBuilder; |
|
33 |
|
|
34 |
/** |
|
35 |
* Mocked User |
|
36 |
*/ |
|
37 |
private final User mockUser = new User("foo", "foo@foo.cz", "foo"); |
|
38 |
|
|
39 |
@Test |
|
40 |
public void loginValidUser(){ |
|
41 |
ResponseEntity<String> response = ResponseEntity.ok().body("eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIyMGU4NmJiMC1lMDU4LTQwYTMtYjQyZC02ZTBjOWIyMmQ5MWQiL" + |
|
42 |
"CJzdWIiOiJmb28iLCJpYXQiOjE2ODE0MTY2ODAsImV4cCI6MTY4MTQxNjk4MH0.YJTwPEI4njQqYRuLGilf_oVl0gGD5BWFmdolk1O" + |
|
43 |
"vYWIgTcoIAFwh6bwqrW7XM6Hlj-ItYj9EmihYIqN5gfJVtg"); |
|
44 |
HashMap<String, String> hashMap = new HashMap<>(); |
|
45 |
hashMap.put("name", mockUser.getName()); |
|
46 |
// when(requestBuilder.sendRequestResponse(anyString(), anyCollection())).thenReturn(response); |
|
47 |
// try(MockedStatic<RequestBuilder> requestBuilderMockedStatic = Mockito.mockStatic(RequestBuilder.class)){ |
|
48 |
// requestBuilderMockedStatic.when(() -> RequestBuilder.sendRequestResponse(anyString(), mockHashMap)).thenReturn(response); |
|
49 |
// } |
|
50 |
|
|
51 |
ResponseEntity<String> response1 = oAuthService.loginUser(mockUser); |
|
52 |
|
|
53 |
assertEquals(response, response1); |
|
54 |
|
|
55 |
} |
|
56 |
|
|
57 |
|
|
58 |
/* public ResponseEntity<String> loginUser(User user) { |
|
59 |
final String userName = user.getName(); |
|
60 |
|
|
61 |
if(userName == null) { |
|
62 |
return null; |
|
63 |
} |
|
64 |
//HttpURLConnection con = RequestBuilder.createConnection(AUTH_URL); |
|
65 |
HashMap<String, String> requestBody = new HashMap<>(); |
|
66 |
|
|
67 |
requestBody.put("name", userName); |
|
68 |
|
|
69 |
return RequestBuilder.sendRequestResponse(AUTH_URL_LOGIN, requestBody); |
|
70 |
} |
|
71 |
*/ |
|
72 |
|
|
73 |
|
|
74 |
|
|
75 |
|
|
76 |
|
|
77 |
|
|
78 |
|
|
79 |
|
|
80 |
|
|
81 |
} |
src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserServiceImpTest.java | ||
---|---|---|
3 | 3 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; |
4 | 4 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; |
5 | 5 |
import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.UserRepository; |
6 |
import org.junit.jupiter.api.BeforeAll; |
|
7 |
import org.junit.jupiter.api.Test; |
|
8 |
import org.junit.jupiter.api.extension.ExtendWith; |
|
9 |
import org.mockito.Mockito; |
|
6 |
import org.junit.Test; |
|
7 |
import org.junit.runner.RunWith; |
|
10 | 8 |
import org.springframework.beans.factory.annotation.Autowired; |
11 |
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; |
|
12 |
import org.springframework.boot.test.context.TestConfiguration; |
|
9 |
import org.springframework.boot.test.context.SpringBootTest; |
|
13 | 10 |
import org.springframework.boot.test.mock.mockito.MockBean; |
14 |
import org.springframework.context.annotation.Bean; |
|
15 |
import org.springframework.security.test.context.support.WithMockUser; |
|
16 |
import org.springframework.test.context.junit.jupiter.SpringExtension; |
|
11 |
import org.springframework.test.context.junit4.SpringRunner; |
|
17 | 12 |
|
18 | 13 |
import static org.junit.jupiter.api.Assertions.assertEquals; |
19 | 14 |
import static org.mockito.ArgumentMatchers.any; |
20 |
import static org.mockito.Mockito.mock;
|
|
15 |
import static org.mockito.Mockito.when;
|
|
21 | 16 |
|
22 | 17 |
/** |
23 | 18 |
* Tests for userServiceImplementation |
24 | 19 |
*/ |
25 |
@ExtendWith(SpringExtension.class) |
|
26 |
@WebMvcTest(value = UserServiceImpl.class) |
|
27 |
@WithMockUser |
|
20 |
@RunWith(SpringRunner.class) |
|
21 |
@SpringBootTest |
|
28 | 22 |
public class UserServiceImpTest { |
29 | 23 |
|
30 |
@TestConfiguration |
|
31 |
static class UserServiceImlpTestConfig{ |
|
32 |
|
|
33 |
@Bean |
|
34 |
public UserService userService() { |
|
35 |
return new UserServiceImpl(); |
|
36 |
} |
|
37 |
} |
|
38 |
|
|
39 | 24 |
/** |
40 | 25 |
* UserService |
41 | 26 |
*/ |
42 | 27 |
@Autowired |
43 | 28 |
private UserService userService; |
44 | 29 |
|
45 |
|
|
46 |
|
|
47 | 30 |
/** |
48 | 31 |
* Mocked userRepository |
49 | 32 |
*/ |
... | ... | |
55 | 38 |
*/ |
56 | 39 |
private final User mockUser = new User("test", "test@tt.cz", "Ahoj99"); |
57 | 40 |
|
41 |
/* <-------- REGISTRATION TESTING --------> */ |
|
42 |
|
|
43 |
/** |
|
44 |
* To test happy-day scenario where everything is ok |
|
45 |
*/ |
|
46 |
@Test |
|
47 |
public void whenUserIsNotRegistered_thenRegisterHim() { |
|
48 |
when(userRepository.save(any())).thenReturn(mockUser); |
|
49 |
|
|
50 |
UserModelStatusCodes foundCode = userService.registerUser(mockUser); |
|
51 |
|
|
52 |
assertEquals(UserModelStatusCodes.USER_CREATED, foundCode); |
|
53 |
} |
|
54 |
|
|
58 | 55 |
/** |
59 |
* Testing registration implementation |
|
60 | 56 |
* To test scenario where user want register which name, with more than 255 chars |
61 | 57 |
*/ |
62 | 58 |
@Test |
... | ... | |
69 | 65 |
"dddddddddddhfbsdjfhbsdjhbjckvxjhbvjhfbsjhbdjhsbvhbsckjhvbsdhfbsdjhvbjxhcbvhbjhvbxcv", "tt@aa.ct"); |
70 | 66 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
71 | 67 |
|
72 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
68 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
73 | 69 |
} |
74 | 70 |
|
75 | 71 |
/** |
76 |
* Testing registration implementation |
|
77 | 72 |
* To test scenario where user want register which email, with more than 255 chars |
78 | 73 |
*/ |
79 | 74 |
@Test |
... | ... | |
85 | 80 |
"ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddt@aa.ct"); |
86 | 81 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
87 | 82 |
|
88 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS); |
|
83 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); |
|
84 |
} |
|
85 |
|
|
86 |
/** |
|
87 |
* To test scenario where user want register which email, with email without "@" |
|
88 |
*/ |
|
89 |
@Test |
|
90 |
public void whenUserEmailIsInvalid_02_thenReturnMSG() { |
|
91 |
User MUser = new User("Petr", "testaa.ct"); |
|
92 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
|
93 |
|
|
94 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); |
|
95 |
} |
|
96 |
|
|
97 |
/** |
|
98 |
* To test scenario where user want register which email, with email without "." |
|
99 |
*/ |
|
100 |
@Test |
|
101 |
public void whenUserEmailIsInvalid_03_thenReturnMSG() { |
|
102 |
User MUser = new User("Petr", "test@aact"); |
|
103 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
|
104 |
|
|
105 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); |
|
106 |
} |
|
107 |
|
|
108 |
/** |
|
109 |
* To test scenario where user want register which email, with email without "@" and "." |
|
110 |
*/ |
|
111 |
@Test |
|
112 |
public void whenUserEmailIsInvalid_04_thenReturnMSG() { |
|
113 |
User MUser = new User("Petr", "testaact"); |
|
114 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
|
115 |
|
|
116 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); |
|
89 | 117 |
} |
90 | 118 |
|
91 | 119 |
/** |
92 |
* Testing registration implementation |
|
93 | 120 |
* To test scenario where user want register which name and email, with more than 255 chars |
94 | 121 |
*/ |
95 | 122 |
@Test |
... | ... | |
107 | 134 |
"ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddt@aa.ct"); |
108 | 135 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
109 | 136 |
|
110 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
137 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
111 | 138 |
} |
112 | 139 |
|
140 |
/** |
|
141 |
* scenario where username is empty |
|
142 |
*/ |
|
113 | 143 |
@Test |
114 | 144 |
public void whenUserNULLName_thenReturnMSG() { |
115 | 145 |
User MUser = new User(null, "tt@asd.cf", "Ahoj99"); |
116 | 146 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
117 | 147 |
|
118 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
148 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
119 | 149 |
} |
120 |
|
|
150 |
/** |
|
151 |
* scenario where email is empty |
|
152 |
*/ |
|
121 | 153 |
@Test |
122 | 154 |
public void whenUserNULLEmail_thenReturnMSG() { |
123 | 155 |
User MUser = new User("tt", null, "Ahoj99"); |
124 | 156 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
125 | 157 |
|
126 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
158 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
127 | 159 |
} |
128 | 160 |
|
161 |
/** |
|
162 |
* scenario where password is empty |
|
163 |
*/ |
|
129 | 164 |
@Test |
130 | 165 |
public void whenUserNULLPassword_thenReturnMSG() { |
131 | 166 |
User MUser = new User("tt", "tt@asd.cf", null); |
132 | 167 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
133 | 168 |
|
134 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
169 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
135 | 170 |
} |
136 | 171 |
|
172 |
/** |
|
173 |
* scenario where username and email is empty |
|
174 |
*/ |
|
137 | 175 |
@Test |
138 | 176 |
public void whenUserNULLNameEmail_thenReturnMSG() { |
139 | 177 |
User MUser = new User(null, null, "Ahoj99"); |
140 | 178 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
141 | 179 |
|
142 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
180 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
143 | 181 |
} |
144 | 182 |
|
183 |
/** |
|
184 |
* scenario where username and password is empty |
|
185 |
*/ |
|
145 | 186 |
@Test |
146 | 187 |
public void whenUserNULLNamePassword_thenReturnMSG() { |
147 | 188 |
User MUser = new User(null, "tt@asd.cf", null); |
148 | 189 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
149 | 190 |
|
150 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
191 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
151 | 192 |
} |
152 | 193 |
|
194 |
/** |
|
195 |
* scenario where email and password is empty |
|
196 |
*/ |
|
153 | 197 |
@Test |
154 | 198 |
public void whenUserNULLEmailPassword_thenReturnMSG() { |
155 | 199 |
User MUser = new User("tt", null, null); |
156 | 200 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
157 | 201 |
|
158 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
202 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
159 | 203 |
} |
160 | 204 |
|
205 |
/** |
|
206 |
* scenario where username, password, and email is empty |
|
207 |
*/ |
|
161 | 208 |
@Test |
162 | 209 |
public void whenUserNULLNameEmailPassword_thenReturnMSG() { |
163 | 210 |
User MUser = new User(null, null, null); |
164 | 211 |
UserModelStatusCodes foundCode = userService.registerUser(MUser); |
165 | 212 |
|
166 |
assertEquals(foundCode, UserModelStatusCodes.INVALID_USER_ARGUMENTS);
|
|
213 |
assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode);
|
|
167 | 214 |
} |
168 | 215 |
|
169 | 216 |
/** |
170 |
* Testing registration implementation |
|
171 |
* To test happy-day scenario where everything is ok |
|
217 |
* To test scenario where user want to register with name, that is already taken |
|
172 | 218 |
*/ |
173 | 219 |
@Test |
174 |
public void whenUserIsNotRegistered_thenRegisterHim() {
|
|
175 |
Mockito.when(userRepository.save(any())).thenReturn(mockUser);
|
|
220 |
public void whenUserIsRegistered_thenSendMSG() {
|
|
221 |
when(userRepository.findByName(any())).thenReturn(mockUser);
|
|
176 | 222 |
|
177 | 223 |
UserModelStatusCodes foundCode = userService.registerUser(mockUser); |
178 | 224 |
|
179 |
assertEquals(foundCode, UserModelStatusCodes.USER_CREATED);
|
|
225 |
assertEquals(UserModelStatusCodes.USER_EXISTS, foundCode);
|
|
180 | 226 |
} |
181 | 227 |
|
228 |
/* <-------- USER VERIFICATION TESTING --------> */ |
|
229 |
|
|
182 | 230 |
/** |
183 |
* Testing registration implementation |
|
184 |
* To test scenario where user want to register which name, that is already taken |
|
231 |
* for happy-day scenario user is registered |
|
185 | 232 |
*/ |
186 | 233 |
@Test |
187 |
public void whenUserIsRegistered_thenSendMSG() { |
|
188 |
Mockito.when(userRepository.findByName(mockUser.getName())).thenReturn(mockUser); |
|
234 |
public void whenUserIsRegistered_thenVerifyHim() { |
|
235 |
String name = mockUser.getName(); |
|
236 |
String password = "C63293087805FC0E63564B1F389A85DE00A369B01F3B4B0D0F3A949F565D2765"; |
|
237 |
String email = mockUser.getEmail(); |
|
189 | 238 |
|
190 |
UserModelStatusCodes foundCode = userService.registerUser(mockUser);
|
|
239 |
when(userRepository.findByName(any())).thenReturn(new User(name, email, password));
|
|
191 | 240 |
|
192 |
assertEquals(foundCode, UserModelStatusCodes.USER_EXISTS); |
|
241 |
UserModelStatusCodes foundCode = userService.verifyUser(mockUser); |
|
242 |
|
|
243 |
assertEquals(UserModelStatusCodes.USER_LOGGED_IN, foundCode); |
|
193 | 244 |
} |
194 | 245 |
|
195 | 246 |
/** |
196 |
* Testing login implementation |
|
197 |
* for happy-day scenario user is registered |
|
247 |
* for users name is not registered |
|
198 | 248 |
*/ |
199 | 249 |
@Test |
200 |
public void whenUserIsRegistered_thenLoggedHim() {
|
|
250 |
public void whenUserIsNotRegistered_thenReturnMSG() {
|
|
201 | 251 |
|
202 |
Mockito.when(userRepository.findByName(mockUser.getName())).thenReturn(mockUser);
|
|
252 |
when(userRepository.findByName(any())).thenReturn(null);
|
|
203 | 253 |
|
204 |
String name = "test"; |
|
205 |
UserModelStatusCodes foundCode = userService.verifyUser(new User(name, "")); |
|
254 |
UserModelStatusCodes foundCode = userService.verifyUser(mockUser); |
|
206 | 255 |
|
207 |
assertEquals(foundCode, UserModelStatusCodes.USER_LOGGED_IN);
|
|
256 |
assertEquals(UserModelStatusCodes.USER_LOGIN_FAILED, foundCode);
|
|
208 | 257 |
} |
209 | 258 |
|
210 | 259 |
/** |
211 |
* Testing login implementation |
|
212 |
* for users name is not registered |
|
260 |
* for scenario when user has wrong password |
|
213 | 261 |
*/ |
214 | 262 |
@Test |
215 |
public void whenUserIsNotRegistered_thenReturnMSG() { |
|
263 |
public void whenUserHasWrongPassword_thenSendERROR_MSG() { |
|
264 |
String name = mockUser.getName(); |
|
265 |
String password = "test"; |
|
266 |
String email = mockUser.getEmail(); |
|
267 |
|
|
268 |
when(userRepository.findByName(any())).thenReturn(new User(name, email, password)); |
|
269 |
|
|
270 |
UserModelStatusCodes foundCode = userService.verifyUser(mockUser); |
|
271 |
|
|
272 |
assertEquals(UserModelStatusCodes.USER_LOGIN_FAILED, foundCode); |
|
273 |
} |
|
274 |
|
|
275 |
|
|
276 |
|
|
277 |
|
|
278 |
|
|
279 |
/* <-------- HASH TESTING --------> */ |
|
280 |
/** |
|
281 |
* for happy-day scenario user is registered |
|
282 |
*/ |
|
283 |
@Test |
|
284 |
public void Hash_test() { |
|
285 |
String hash = "c63293087805fc0e63564b1f389a85de00a369b01f3b4b0d0f3a949f565d2765"; |
|
216 | 286 |
|
217 |
//Mockito.when(userRepository.findByName(mockUser.getName())).thenReturn(mockUser);
|
|
287 |
UserServiceImpl userService1 = new UserServiceImpl();
|
|
218 | 288 |
|
219 |
String name = "notest"; |
|
220 |
UserModelStatusCodes foundCode = userService.verifyUser(new User(name, "")); |
|
289 |
String foundCode = userService1.hashPassword(mockUser.getPassword()); |
|
221 | 290 |
|
222 |
assertEquals(foundCode, UserModelStatusCodes.USER_LOGIN_FAILED);
|
|
291 |
assertEquals(hash.toUpperCase(), foundCode);
|
|
223 | 292 |
} |
224 | 293 |
|
225 | 294 |
} |
Také k dispozici: Unified diff
#10368 testy pro userservice