use of com.hotels.styx.StyxObjectRecord in project styx by ExpediaGroup.
the class ServiceProviderHandlerTest method returnsNotFoundStatusWhenNamedProviderNotFound.
@Test
public void returnsNotFoundStatusWhenNamedProviderNotFound() throws IOException {
StyxObjectStore<StyxObjectRecord<StyxService>> store = createTestStore();
ServiceProviderHandler handler = new ServiceProviderHandler(store);
HttpRequest request = HttpRequest.get("/admin/service/provider/nonexistent").build();
HttpResponse response = Mono.from(handler.handle(request, requestContext())).block();
assertThat(response.status(), equalTo(NOT_FOUND));
}
use of com.hotels.styx.StyxObjectRecord in project styx by ExpediaGroup.
the class ServiceProviderHandlerTest method returnsNotFoundStatusWithNonHandledUrl.
@Test
public void returnsNotFoundStatusWithNonHandledUrl() {
StyxObjectStore<StyxObjectRecord<StyxService>> empty = new StyxObjectStore<>();
ServiceProviderHandler handler = new ServiceProviderHandler(empty);
HttpRequest request = HttpRequest.get("/not/my/url").build();
HttpResponse response = Mono.from(handler.handle(request, requestContext())).block();
assertThat(response.status(), equalTo(NOT_FOUND));
}
use of com.hotels.styx.StyxObjectRecord in project styx by ExpediaGroup.
the class ProviderListHandlerTest method showsEndpointsForAllConfiguredProviders.
@Test
public void showsEndpointsForAllConfiguredProviders() throws JsonProcessingException {
JsonNode config = new ObjectMapper().readTree("{\"setting1\" : \"A\", \"setting2\" : \"A\"}");
StyxObjectStore<StyxObjectRecord<StyxService>> store = new StyxObjectStore<>();
store.insert("Service-A1", new StyxObjectRecord<>("ServiceA", new HashSet<>(), config, new SampleServiceA("Service-A-1")));
store.insert("Service-A2", new StyxObjectRecord<>("ServiceA", new HashSet<>(), config, new SampleServiceA("Service-A-2")));
store.insert("Service-B", new StyxObjectRecord<>("ServiceB", new HashSet<>(), config, new SampleServiceB("Service-B")));
ProviderListHandler handler = new ProviderListHandler(store);
HttpResponse response = Mono.from(handler.handle(get("/").build(), requestContext())).block();
assertThat(response.status(), equalTo(OK));
assertThat(response.bodyAs(UTF_8), stringContainsInOrder("Service-A1 (ServiceA)", "<a href=\"/admin/providers/Service-A1/status\">/admin/providers/Service-A1/status</a>", "Service-A2 (ServiceA)", "<a href=\"/admin/providers/Service-A2/status\">/admin/providers/Service-A2/status</a>", "Service-B (ServiceB)", "<a href=\"/admin/providers/Service-B/withslash/\">/admin/providers/Service-B/withslash/</a>", "<a href=\"/admin/providers/Service-B/noslash\">/admin/providers/Service-B/noslash</a>", "<a href=\"/admin/providers/Service-B/\">/admin/providers/Service-B/</a>"));
}
use of com.hotels.styx.StyxObjectRecord in project styx by ExpediaGroup.
the class ServiceProviderHandlerTest method createTestStore.
private StyxObjectStore<StyxObjectRecord<StyxService>> createTestStore() throws IOException {
ObjectMapper mapper = new ObjectMapper();
StyxService mockService = mock(StyxService.class);
StyxObjectStore<StyxObjectRecord<StyxService>> store = new StyxObjectStore<>();
JsonNode config1 = mapper.readTree("{\"setting1\" : \"A\", \"setting2\" : \"A\"}");
StyxObjectRecord<StyxService> rec1 = new StyxObjectRecord<>("Type1", new HashSet<>(Arrays.asList("this=that", "truth=false")), config1, mockService);
store.insert("object1", rec1);
JsonNode config2 = mapper.readTree("{\"setting1\" : \"B\", \"setting2\" : \"B\"}");
StyxObjectRecord<StyxService> rec2 = new StyxObjectRecord<>("Type2", new HashSet<>(Arrays.asList("up=down", "weakness=strength")), config2, mockService);
store.insert("object2", rec2);
JsonNode config3 = mapper.readTree("{\"setting1\" : \"C\", \"setting2\" : \"C\"}");
StyxObjectRecord<StyxService> rec3 = new StyxObjectRecord<>("Type3", new HashSet<>(Arrays.asList("black=white", "left=right")), config3, mockService);
store.insert("object3", rec3);
return store;
}
use of com.hotels.styx.StyxObjectRecord in project styx by ExpediaGroup.
the class ServiceProviderHandlerTest method returnsAllProviders.
@Test
public void returnsAllProviders() throws IOException {
StyxObjectStore<StyxObjectRecord<StyxService>> store = createTestStore();
ServiceProviderHandler handler = new ServiceProviderHandler(store);
HttpRequest request = HttpRequest.get("/admin/service/providers").build();
HttpResponse response = Mono.from(handler.handle(request, requestContext())).block();
assertThat(response.status(), equalTo(OK));
List<StyxObjectDefinition> actualProviders = extractProviders(response.bodyAs(UTF_8));
assertThat(actualProviders.size(), equalTo(store.entrySet().size()));
for (StyxObjectDefinition actual : actualProviders) {
Optional<StyxObjectRecord<StyxService>> rec = store.get(actual.name());
assertTrue(rec.isPresent());
validateProvider(actual, rec.get());
}
}
Aggregations