Skip to content

Commit 458e47e

Browse files
committed
Start refactoring to use Path instead of String dir
1 parent ce3e29a commit 458e47e

File tree

3 files changed

+20
-17
lines changed

3 files changed

+20
-17
lines changed

src/main/java/httpserver/App.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,22 @@
11
package httpserver;
22

3+
import httpserver.fileutils.Files;
4+
35
import java.io.IOException;
46
import java.net.ServerSocket;
57
import java.net.Socket;
8+
import java.nio.file.Path;
69

710
public class App {
811
public static void main(String[] args) {
912
int port = Integer.parseInt(args[1]);
1013
String fileDirectory = args[3];
14+
Path root = Files.getPath(fileDirectory);
1115
try {
1216
ServerSocket serverSocket = new ServerSocket(port);
1317
while (true) {
1418
Socket clientSocket = serverSocket.accept();
15-
SocketHandler socketHandler = new SocketHandler(fileDirectory);
19+
SocketHandler socketHandler = new SocketHandler(root);
1620
socketHandler.process(clientSocket.getInputStream(), clientSocket.getOutputStream());
1721
}
1822
} catch (IOException e) {

src/main/java/httpserver/SocketHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,16 @@
33
import java.io.IOException;
44
import java.io.InputStream;
55
import java.io.OutputStream;
6+
import java.nio.file.Path;
67

78
public class SocketHandler {
89
private final RequestParser requestParser;
910
private final Responder responder;
1011
private final ResponseWriter responseWriter;
1112

12-
public SocketHandler(String fileDirectory) {
13+
public SocketHandler(Path root) {
1314
this.requestParser = new RequestParser();
14-
this.responder = new Responder(fileDirectory);
15+
this.responder = new Responder(root);
1516
this.responseWriter = new ResponseWriter();
1617
}
1718

src/test/java/httpserver/SocketHandlerTest.java

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,27 @@
33
import org.junit.Test;
44

55
import java.io.*;
6+
import java.nio.file.Path;
67

8+
import static httpserver.fileutils.FileHelpers.tempDir;
9+
import static httpserver.fileutils.FileHelpers.tempFileOptions;
10+
import static java.nio.file.Files.write;
711
import static org.junit.Assert.*;
812

913
public class SocketHandlerTest {
10-
private final String tempdir;
11-
12-
public SocketHandlerTest() {
13-
this.tempdir = System.getProperty("java.io.tmpdir");
14-
}
1514

1615
@Test
1716
public void writesRequestedFileContentsToOutputStreamForGET() throws Exception {
18-
File tempFile = File.createTempFile("temp-", "-testfile");
19-
tempFile.deleteOnExit();
20-
String fullPath = tempFile.toString();
21-
String relativePath = fullPath.substring(tempdir.length());
22-
FileOutputStream fileOutputStream = new FileOutputStream(fullPath);
23-
fileOutputStream.write("Test file contents for GET request.".getBytes());
24-
25-
byte[] request = ("GET " + relativePath + " HTTP/1.1\r\nHost: 127.0.0.1:5000\r\n\r\n").getBytes();
17+
Path root = tempDir();
18+
Path file = tempFileOptions(root, "aaa");
19+
write(file, "Test file contents for GET request.".getBytes());
20+
21+
Path relativePath = root.relativize(file);
22+
byte[] request = ("GET " + relativePath.toString() + " HTTP/1.1\r\nHost: 127.0.0.1:5000\r\n\r\n").getBytes();
23+
2624
InputStream inputStream = new ByteArrayInputStream(request);
2725
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
28-
SocketHandler socketHandler = new SocketHandler(tempdir);
26+
SocketHandler socketHandler = new SocketHandler(root);
2927

3028
socketHandler.process(inputStream, outputStream);
3129

0 commit comments

Comments
 (0)