Skip to content

Commit

Permalink
Update web pattern
Browse files Browse the repository at this point in the history
  • Loading branch information
jbernal committed Sep 28, 2018
1 parent 53fdb0a commit 21832c4
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 23 deletions.
30 changes: 20 additions & 10 deletions src/main/java/es/upm/miw/webpattern/frontcontroller/Dispatcher.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,25 @@ public class Dispatcher implements Server {

private static final String PATH_ERROR = "Path Error";

private static final String METHOD_ERROR = "Method Error";

private static final String INTEGER_ERROR = "Integer Error";

private Resource1 resource1 = new Resource1();
private Resource1 resource1;

private Resource2 resource2;

private Resource2 resource2 = new Resource2();
public Dispatcher() {
this.resource1 = new Resource1();
this.resource2 = new Resource2();
}

private void responseError(HttpResponse response, String msg) {
response.setBody("{\"error\":\"" + msg + "\"}");
response.setStatus(HttpStatus.BAD_REQUEST);
}

public void doGet(HttpRequest request, HttpResponse response) {
private void doGet(HttpRequest request, HttpResponse response) {
String result;
switch (request.getPath()) {
case "/path1":
Expand All @@ -44,7 +51,7 @@ public void doGet(HttpRequest request, HttpResponse response) {
}
}

public void doPost(HttpRequest request, HttpResponse response) {
private void doPost(HttpRequest request, HttpResponse response) {
String result;
switch (request.getPath()) {
case "/path1":
Expand All @@ -63,16 +70,16 @@ public void doPost(HttpRequest request, HttpResponse response) {
}
}

public void doPut(HttpRequest request, HttpResponse response) {
responseError(response, PATH_ERROR);
private void doPut(HttpRequest request, HttpResponse response) {
responseError(response, METHOD_ERROR);
}

public void doPatch(HttpRequest request, HttpResponse response) {
responseError(response, PATH_ERROR);
private void doPatch(HttpRequest request, HttpResponse response) {
responseError(response, METHOD_ERROR);
}

public void doDelete(HttpRequest request, HttpResponse response) {
responseError(response, PATH_ERROR);
private void doDelete(HttpRequest request, HttpResponse response) {
responseError(response, METHOD_ERROR);
}

@Override
Expand All @@ -88,6 +95,9 @@ public HttpResponse submit(HttpRequest request) {
case PUT:
doPut(request, response);
break;
case PATCH:
doPatch(request, response);
break;
case DELETE:
doDelete(request, response);
break;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import es.upm.miw.webpattern.http.HttpStatus;
import org.apache.logging.log4j.LogManager;

public class AuthenticationFilter extends Filter {
public class AuthenticationFilter implements Filter {

@Override
public void doFilter(HttpRequest request, HttpResponse response, FilterChain filterChain) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import es.upm.miw.webpattern.http.HttpResponse;
import org.apache.logging.log4j.LogManager;

public class DebugFilter extends Filter {
public class DebugFilter implements Filter {

@Override
public void doFilter(HttpRequest request, HttpResponse response, FilterChain filterChain) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
import es.upm.miw.webpattern.http.HttpRequest;
import es.upm.miw.webpattern.http.HttpResponse;

public abstract class Filter {
public abstract void doFilter(HttpRequest request, HttpResponse response, FilterChain filterChain);
public interface Filter {
void doFilter(HttpRequest request, HttpResponse response, FilterChain filterChain);
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import java.util.Date;

public class TimeFilter extends Filter {
public class TimeFilter implements Filter {

@Override
public void doFilter(HttpRequest request, HttpResponse response, FilterChain filterChain) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,47 +10,65 @@

class FrontControllerApiFunctionalTesting {

private Client httpClientService;
private Client client;

@BeforeEach
void before() {
httpClientService = new Client(new Dispatcher());
client = new Client(new Dispatcher());
}

@Test
void Resource1Method1Test() {
HttpRequest request = HttpRequest.builder("/path1").param("param", "value").param("param2", "2").get();
httpClientService.submit(request);
client.submit(request);
}

@Test
void Resource1Method1HttpExceptionTest() {
HttpRequest request = HttpRequest.builder("/path1").param("param", "value").param("param2", "noInteger").get();
assertThrows(HttpException.class, () -> httpClientService.submit(request));
assertThrows(HttpException.class, () -> client.submit(request));
}

@Test
void Resource1Method2Test() {
HttpRequest request = HttpRequest.builder("/path1").post();
httpClientService.submit(request);
client.submit(request);
}

@Test
void Resource1Method3Test() {
HttpRequest request = HttpRequest.builder("/path1/sub").post();
httpClientService.submit(request);
client.submit(request);
}

@Test
void Resource2Method1Test() {
HttpRequest request = HttpRequest.builder("/path2").param("param", "value").get();
httpClientService.submit(request);
client.submit(request);
}

@Test
void notResourceHttpExceptionTest() {
HttpRequest request = HttpRequest.builder("/no").param("param", "value").get();
assertThrows(HttpException.class, () -> httpClientService.submit(request));
assertThrows(HttpException.class, () -> client.submit(request));
}

@Test
void notMethodPutHttpExceptionTest() {
HttpRequest request = HttpRequest.builder("/path1").put();
assertThrows(HttpException.class, () -> client.submit(request));
}

@Test
void notMethodPatchHttpExceptionTest() {
HttpRequest request = HttpRequest.builder("/path1").patch();
assertThrows(HttpException.class, () -> client.submit(request));
}

@Test
void notMethodDeleteHttpExceptionTest() {
HttpRequest request = HttpRequest.builder("/path1").delete();
assertThrows(HttpException.class, () -> client.submit(request));
}

}

0 comments on commit 21832c4

Please sign in to comment.