Repository navigation
Expand file tree
/
Copy pathUserAcceptanceTest.java
More file actions
82 lines (69 loc) · 3.47 KB
/
Copy pathUserAcceptanceTest.java
File metadata and controls
82 lines (69 loc) · 3.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
package codesquad.web;
import codesquad.domain.UserRepository;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.MultiValueMap;
import support.test.BasicAuthAcceptanceTest;
import support.test.HtmlFormDataBuilder;
public class UserAcceptanceTest extends BasicAuthAcceptanceTest {
private static final Logger log = LoggerFactory.getLogger(UserAcceptanceTest.class);
@Autowired
private UserRepository userRepository;
@Test
public void createForm() throws Exception {
ResponseEntity<String> response = template.getForEntity("/users/form", String.class);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
log.debug("body : {}", response.getBody());
}
@Test
public void create() throws Exception {
String userId = "testuser";
HttpEntity<MultiValueMap<String, Object>> request = HtmlFormDataBuilder.urlEncodedForm()
.addParameter("userId", userId)
.addParameter("password", "password")
.addParameter("name", "자바지기")
ResponseEntity<String> response = template.postForEntity("/users", request, String.class);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.FOUND);
softly.assertThat(userRepository.findByUserId(userId)).isNotNull();
softly.assertThat(response.getHeaders().getLocation().getPath()).isEqualTo("/users");
}
@Test
public void updateForm_no_login() throws Exception {
ResponseEntity<String> response = template.getForEntity(String.format("/users/%d/form", loginUser.getId()),
String.class);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
@Test
public void updateForm_login() throws Exception {
ResponseEntity<String> response = basicAuthTemplate
.getForEntity(String.format("/users/%d/form", loginUser.getId()), String.class);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK);
softly.assertThat(response.getBody().contains(loginUser.getName())).isTrue();
}
@Test
public void update_no_login() throws Exception {
ResponseEntity<String> response = update(template);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.FORBIDDEN);
}
private ResponseEntity<String> update(TestRestTemplate template) throws Exception {
HttpEntity<MultiValueMap<String, Object>> request = HtmlFormDataBuilder.urlEncodedForm()
.addParameter("_method", "put")
.addParameter("password", "pass2")
.addParameter("name", "재성2")
return template.postForEntity(String.format("/users/%d", loginUser.getId()), request, String.class);
}
@Test
public void update() throws Exception {
ResponseEntity<String> response = update(basicAuthTemplate);
softly.assertThat(response.getStatusCode()).isEqualTo(HttpStatus.FOUND);
softly.assertThat(response.getHeaders().getLocation().getPath()).isEqualTo("/users");
}
}