use of org.swisspush.gateleen.core.http.DummyHttpServerRequest in project gateleen by swisspush.
the class RouterTest method testServerInfoRequestsAreNotAvailableWhenDefaultRoutesAreOverridden.
@Test
public void testServerInfoRequestsAreNotAvailableWhenDefaultRoutesAreOverridden(TestContext context) {
Set<Router.DefaultRouteType> defaultRouteTypes = new HashSet() {
{
add(Router.DefaultRouteType.SIMULATOR);
add(Router.DefaultRouteType.DEBUG);
}
};
storage = new MockResourceStorage(ImmutableMap.of(rulesPath, RULES_WITH_HOPS));
Router router = new Router(vertx, storage, properties, loggingResourceManager, monitoringHandler, httpClient, serverUrl, rulesPath, userProfilePath, info, storagePort, defaultRouteTypes);
final DummyHttpServerResponse response = new DummyHttpServerResponse();
response.setStatusCode(StatusCode.OK.getStatusCode());
response.setStatusMessage(StatusCode.OK.getStatusMessage());
class GETServerInfoRequest extends DummyHttpServerRequest {
@Override
public HttpMethod method() {
return HttpMethod.GET;
}
@Override
public String uri() {
return "/gateleen/server/info";
}
@Override
public String path() {
return "/gateleen/server/info";
}
@Override
public MultiMap params() {
return MultiMap.caseInsensitiveMultiMap();
}
@Override
public MultiMap headers() {
return MultiMap.caseInsensitiveMultiMap();
}
@Override
public DummyHttpServerResponse response() {
return response;
}
}
GETServerInfoRequest request = new GETServerInfoRequest();
router.route(request);
context.assertEquals(StatusCode.NOT_FOUND.getStatusCode(), request.response().getStatusCode(), "StatusCode should be 404");
}
use of org.swisspush.gateleen.core.http.DummyHttpServerRequest in project gateleen by swisspush.
the class RouterTest method testGETRoutingRulesWithBrokenRouterShouldWork.
@Test
public void testGETRoutingRulesWithBrokenRouterShouldWork(TestContext context) {
Router router = new Router(vertx, storage, properties, loggingResourceManager, monitoringHandler, httpClient, serverUrl, rulesPath, userProfilePath, info, storagePort);
context.assertTrue(router.isRoutingBroken(), "Routing should be broken because of missing properties entry");
context.assertNotNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertTrue(router.getRoutingBrokenMessage().contains("gateleen.test.prop.1"), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
final DummyHttpServerResponse response = new DummyHttpServerResponse();
class GETRoutingRulesRequest extends DummyHttpServerRequest {
@Override
public HttpMethod method() {
return HttpMethod.GET;
}
@Override
public String uri() {
return "/gateleen/server/admin/v1/routing/rules";
}
@Override
public DummyHttpServerResponse response() {
return response;
}
@Override
public MultiMap headers() {
return MultiMap.caseInsensitiveMultiMap();
}
}
GETRoutingRulesRequest request = new GETRoutingRulesRequest();
router.route(request);
context.assertTrue(router.isRoutingBroken(), "Routing should still be broken");
context.assertNotNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertTrue(router.getRoutingBrokenMessage().contains("gateleen.test.prop.1"), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertEquals(StatusCode.OK.getStatusCode(), request.response().getStatusCode(), "StatusCode should be 200");
context.assertEquals(StatusCode.OK.getStatusMessage(), request.response().getStatusMessage(), "StatusMessage should be OK");
context.assertEquals(RULES_WITH_MISSING_PROPS, request.response().getResultBuffer(), "RoutingRules should be returned as result");
}
use of org.swisspush.gateleen.core.http.DummyHttpServerRequest in project gateleen by swisspush.
the class RouterTest method testGETAnyResourceWithBrokenRouterShouldNotWork.
@Test
public void testGETAnyResourceWithBrokenRouterShouldNotWork(TestContext context) {
Router router = new Router(vertx, storage, properties, loggingResourceManager, monitoringHandler, httpClient, serverUrl, rulesPath, userProfilePath, info, storagePort);
context.assertTrue(router.isRoutingBroken(), "Routing should be broken because of missing properties entry");
context.assertNotNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertTrue(router.getRoutingBrokenMessage().contains("gateleen.test.prop.1"), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
final DummyHttpServerResponse response = new DummyHttpServerResponse();
class GETRandomResourceRequest extends DummyHttpServerRequest {
@Override
public HttpMethod method() {
return HttpMethod.GET;
}
@Override
public String uri() {
return "/gateleen/server/random/resource";
}
@Override
public DummyHttpServerResponse response() {
return response;
}
@Override
public MultiMap headers() {
return MultiMap.caseInsensitiveMultiMap();
}
}
GETRandomResourceRequest request = new GETRandomResourceRequest();
router.route(request);
context.assertTrue(router.isRoutingBroken(), "Routing should still be broken");
context.assertNotNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertTrue(router.getRoutingBrokenMessage().contains("gateleen.test.prop.1"), "RoutingBrokenMessage should contain 'gateleen.test.prop.1' property");
context.assertEquals(StatusCode.INTERNAL_SERVER_ERROR.getStatusCode(), request.response().getStatusCode(), "StatusCode should be 500");
context.assertEquals(StatusCode.INTERNAL_SERVER_ERROR.getStatusMessage(), request.response().getStatusMessage(), "StatusMessage should be Internal Server Error");
context.assertTrue(request.response().getResultBuffer().contains("Routing is broken"), "Routing is broken message should be returned");
context.assertTrue(request.response().getResultBuffer().contains("gateleen.test.prop.1"), "The message should contain 'gateleen.test.prop.1' in the message");
}
use of org.swisspush.gateleen.core.http.DummyHttpServerRequest in project gateleen by swisspush.
the class RouterTest method testStorageRequestWithHeadersFilterPresent.
@Test
public void testStorageRequestWithHeadersFilterPresent(TestContext context) {
storage = new MockResourceStorage(ImmutableMap.of(rulesPath, RULES_WITH_HEADERSFILTER, serverUrl + "forward/to/storage", RANDOM_RESOURCE));
Router router = new Router(vertx, storage, properties, loggingResourceManager, monitoringHandler, httpClient, serverUrl, rulesPath, userProfilePath, info, storagePort);
ConfigurationResourceManager configurationResourceManager = Mockito.mock(ConfigurationResourceManager.class);
router.enableRoutingConfiguration(configurationResourceManager, serverUrl + "/admin/v1/routing/config");
context.assertFalse(router.isRoutingBroken(), "Routing should not be broken");
context.assertNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should be null");
final DummyHttpServerResponse response = new DummyHttpServerResponse();
response.setStatusCode(StatusCode.OK.getStatusCode());
response.setStatusMessage(StatusCode.OK.getStatusMessage());
MultiMap headers = new HeadersMultiMap();
headers.set("x-foo", "bar");
DummyHttpServerRequest request = buildRequest(HttpMethod.GET, "/gateleen/server/forward/to/storage", headers, Buffer.buffer(RANDOM_RESOURCE), response);
router.route(request);
context.assertEquals(StatusCode.OK.getStatusCode(), request.response().getStatusCode(), "StatusCode should be 200");
context.assertEquals(StatusCode.OK.getStatusMessage(), request.response().getStatusMessage(), "StatusMessage should be OK");
}
use of org.swisspush.gateleen.core.http.DummyHttpServerRequest in project gateleen by swisspush.
the class RouterTest method testNullForwarderRequestWithHeadersFilterNotMatching.
@Test
public void testNullForwarderRequestWithHeadersFilterNotMatching(TestContext context) {
storage = new MockResourceStorage(ImmutableMap.of(rulesPath, RULES_WITH_HEADERSFILTER, serverUrl + "forward/to/nowhere", RANDOM_RESOURCE));
Router router = new Router(vertx, storage, properties, loggingResourceManager, monitoringHandler, httpClient, serverUrl, rulesPath, userProfilePath, info, storagePort);
ConfigurationResourceManager configurationResourceManager = Mockito.mock(ConfigurationResourceManager.class);
router.enableRoutingConfiguration(configurationResourceManager, serverUrl + "/admin/v1/routing/config");
context.assertFalse(router.isRoutingBroken(), "Routing should not be broken");
context.assertNull(router.getRoutingBrokenMessage(), "RoutingBrokenMessage should be null");
final DummyHttpServerResponse response = new DummyHttpServerResponse();
response.setStatusCode(StatusCode.OK.getStatusCode());
response.setStatusMessage(StatusCode.OK.getStatusMessage());
MultiMap headers = new HeadersMultiMap();
headers.set("x-foo", "99");
DummyHttpServerRequest request = buildRequest(HttpMethod.PUT, "/gateleen/server/forward/to/nowhere", headers, Buffer.buffer(RANDOM_RESOURCE), response);
router.route(request);
context.assertEquals(StatusCode.BAD_REQUEST.getStatusCode(), request.response().getStatusCode(), "StatusCode should be 400");
context.assertEquals(StatusCode.BAD_REQUEST.getStatusMessage(), request.response().getStatusMessage(), "StatusMessage should be Bad Request");
}
Aggregations