Skip to content

Commit

Permalink
refactor: RequestHeader에서 ContentLength 바로 가져오도록 수정
Browse files Browse the repository at this point in the history
  • Loading branch information
Dae-Hwa committed Sep 8, 2021
1 parent 2c1ce14 commit c519e02
Show file tree
Hide file tree
Showing 4 changed files with 155 additions and 120 deletions.
3 changes: 1 addition & 2 deletions src/main/java/webserver/RequestHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,7 @@ public void run() {

RequestHeader requestHeader = RequestHeader.from(requestMessages.toString());

int contentLength = Integer.parseInt(requestHeader.getAttributes().getOrDefault("Content-Length", "0"));
String requestBody = IOUtils.readData(br, contentLength);
String requestBody = IOUtils.readData(br, requestHeader.getContentLength());

requestMessages.add(System.lineSeparator() + requestBody);

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/webserver/http/header/Header.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,8 @@ public byte[] getBytes() {
}

protected abstract String getStatusLine();

public int getContentLength() {
return Integer.parseInt(attributes.getOrDefault("Content-Length", "0"));
}
}
15 changes: 9 additions & 6 deletions src/test/java/webserver/RequestHandlerTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,16 @@
import model.User;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.*;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.BindException;
import java.net.ServerSocket;
import java.net.Socket;
Expand All @@ -25,7 +27,8 @@

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
import static webserver.FileForTest.*;
import static webserver.FileForTest.FORM_HTML;
import static webserver.FileForTest.INDEX_HTML;

class RequestHandlerTest {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
Expand Down Expand Up @@ -394,7 +397,7 @@ static Stream<Arguments> loginHandler() {
.setName("test")
.setEmail("test@test")
.build(),
new HashMap() {{
new HashMap<String, String>() {{
put("userId", "test");
put("password", "test");
put("name", "test");
Expand All @@ -411,7 +414,7 @@ static Stream<Arguments> loginHandler() {
.setName("test")
.setEmail("test@test")
.build(),
new HashMap() {{
new HashMap<String, String>() {{
put("userId", "wrongId");
put("password", "test");
put("name", "test");
Expand All @@ -428,7 +431,7 @@ static Stream<Arguments> loginHandler() {
.setName("test")
.setEmail("test@test")
.build(),
new HashMap() {{
new HashMap<String, String>() {{
put("userId", "test");
put("password", "wrongPassword");
put("name", "test");
Expand Down
Loading

0 comments on commit c519e02

Please sign in to comment.