File tree Expand file tree Collapse file tree 4 files changed +68
-1
lines changed
Expand file tree Collapse file tree 4 files changed +68
-1
lines changed Original file line number Diff line number Diff line change 22
33import httpserver .responder .GetResponder ;
44import httpserver .responder .PostResponder ;
5+ import httpserver .responder .PutResponder ;
56import httpserver .responder .Responder ;
67import httpserver .response .Response ;
78
@@ -11,7 +12,7 @@ public enum Method {
1112 GET (new GetResponder ()),
1213 HEAD (null ),
1314 POST (new PostResponder ()),
14- PUT (null ),
15+ PUT (new PutResponder () ),
1516 DELETE (null ),
1617 OPTIONS (null );
1718
Original file line number Diff line number Diff line change 1+ package httpserver .responder ;
2+
3+ import httpserver .Request ;
4+ import httpserver .response .MethodNotAllowedResponse ;
5+ import httpserver .response .OkResponse ;
6+ import httpserver .response .Response ;
7+
8+ import java .nio .file .Path ;
9+
10+ public class PutResponder implements Responder {
11+ @ Override
12+ public Response respond (Path root , Request request ) {
13+ if (request .getPath () == "/form" ) {
14+ return new OkResponse (new byte [0 ]);
15+ }
16+ return new MethodNotAllowedResponse ();
17+ }
18+ }
Original file line number Diff line number Diff line change @@ -68,4 +68,18 @@ public void returns405ForPOST() throws Exception {
6868 String expected = "HTTP/1.1 405 Method Not Allowed\r \n Content-Length: 0\r \n \r \n " ;
6969 assertEquals (expected , outputStream .toString ());
7070 }
71+
72+ @ Test
73+ public void returns405ForPUT () throws Exception {
74+ Path root = tempDir ();
75+ byte [] request = ("PUT /example HTTP/1.1\r \n Host: 127.0.0.1:5000\r \n \r \n " ).getBytes ();
76+ InputStream inputStream = new ByteArrayInputStream (request );
77+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream ();
78+ SocketHandler socketHandler = new SocketHandler (root );
79+
80+ socketHandler .process (inputStream , outputStream );
81+
82+ String expected = "HTTP/1.1 405 Method Not Allowed\r \n Content-Length: 0\r \n \r \n " ;
83+ assertEquals (expected , outputStream .toString ());
84+ }
7185}
Original file line number Diff line number Diff line change 1+ package httpserver .responder ;
2+
3+ import httpserver .Request ;
4+ import httpserver .response .Response ;
5+ import org .junit .Ignore ;
6+ import org .junit .Test ;
7+
8+ import java .nio .file .Path ;
9+ import java .nio .file .Paths ;
10+ import java .util .HashMap ;
11+
12+ import static org .junit .Assert .*;
13+
14+ public class PutResponderTest {
15+ @ Test
16+ public void gets200StatusCode () throws Exception {
17+ Path root = Paths .get ("test" );
18+ Request request = new Request ("PUT" , "/form" , new HashMap <>());
19+ PutResponder putResponder = new PutResponder ();
20+
21+ Response response = putResponder .respond (root , request );
22+ assertEquals (200 , response .getStatusCode ());
23+ }
24+
25+ @ Test
26+ public void returns405IfNotFormUrl () throws Exception {
27+ Path root = Paths .get ("test" );
28+ Request request = new Request ("POST" , "/file1.txt" , new HashMap <>());
29+ PostResponder postResponder = new PostResponder ();
30+
31+ Response response = postResponder .respond (root , request );
32+ assertEquals (405 , response .getStatusCode ());
33+ }
34+ }
You can’t perform that action at this time.
0 commit comments