@Test public void testAppendAbsolutePath() { URI uri = uriBuilder() .scheme("http") .host("www.example.com") .appendPath("/a/b/c") .appendPath("/x/y/z") .build(); assertEquals(uri.toASCIIString(), "http://www.example.com/a/b/c/x/y/z"); }
private static URI getSelfUri(UUID slotId, URI baseUri) { return uriBuilderFrom(baseUri).appendPath("/v1/agent/slot/").appendPath(slotId.toString()).build(); } }
public HttpUriBuilder replaceParameter(String name, String... values) { Preconditions.checkNotNull(name, "name is null"); params.removeAll(name); addParameter(name, values); return this; }
@Test public void testFull() { URI uri = uriBuilder() .scheme("http") .host("www.example.com") .port(8081) .replacePath("/a/b/c") .replaceParameter("k", "1") .build(); assertEquals(uri.toASCIIString(), "http://www.example.com:8081/a/b/c?k=1"); }
@Test public void testShow() throws Exception { initializeOneAgent(); coordinator.updateAllAgentsAndWait(); Request request = Request.Builder.prepareGet() .setUri(coordinatorUriBuilder().appendPath("/v1/slot").addParameter("!binary", "*:apple:*").build()) .build(); List<SlotStatusRepresentation> actual = httpClient.execute(request, createJsonResponseHandler(slotStatusesCodec, Status.OK.getStatusCode())); List<SlotStatusRepresentation> expected = ImmutableList.of( slotStatusRepresentationFactory.create(bananaSlot.status().changeInstanceId(agentInstanceId))); assertEqualsNoOrder(actual, expected); }
@Override public List<CoordinatorStatusRepresentation> showCoordinators(CoordinatorFilter coordinatorFilter) { URI uri = coordinatorFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("v1/admin/coordinator")); Request request = Request.Builder.prepareGet() .setUri(uri) .build(); List<CoordinatorStatusRepresentation> coordinators = client.execute(request, createJsonResponseHandler(COORDINATORS_CODEC)); return coordinators; }
private ListenableFuture<Instance> getAgentInstance(URI agentUri) { URI uri = uriBuilderFrom(agentUri).replacePath("/v1/agent").build(); Request request = prepareGet().setUri(uri).build(); SettableFuture<Instance> future = SettableFuture.create(); Futures.addCallback( httpClient.executeAsync(request, validate(createJsonResponseHandler(agentCodec))), agentStatusCallback(future, agentUri)); return future; }
@Override public List<SlotStatusRepresentation> install(AgentFilter agentFilter, int count, Assignment assignment, String expectedVersion) { URI uri = agentFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot").addParameter("limit", String.valueOf(count))); Request.Builder requestBuilder = Request.Builder.preparePost() .setUri(uri) .setHeader("Content-Type", "application/json") .setBodyGenerator(jsonBodyGenerator(ASSIGNMENT_CODEC, AssignmentRepresentation.from(assignment))); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Test public void testGetAllAgentsEmpty() { Request request = Request.Builder.prepareGet() .setUri(coordinatorUriBuilder().appendPath("/v1/admin/agent").build()) .build(); List<AgentStatusRepresentation> actual = httpClient.execute(request, createJsonResponseHandler(agentStatusesCodec, Status.OK.getStatusCode())); assertEquals(actual.size(), 0); }
@Test public void testReplacePort() { URI uri = HttpUriBuilder.uriBuilderFrom(URI.create("http://www.example.com:8081/")) .port(80) .build(); assertEquals(uri.toASCIIString(), "http://www.example.com:80/"); }
@Test public void testReplaceParameters() { URI uri = HttpUriBuilder.uriBuilderFrom(URI.create("http://www.example.com:8081/?k1=1&k1=2&k2=3")) .replaceParameter("k1", "4") .build(); assertEquals(uri.toASCIIString(), "http://www.example.com:8081/?k2=3&k1=4"); }
@Test public void testDefaultPort() { URI uri = HttpUriBuilder.uriBuilderFrom(URI.create("http://www.example.com:8081")) .defaultPort() .build(); assertEquals(uri.toASCIIString(), "http://www.example.com"); }
public URI buildUri(URI baseUri) { HttpUriBuilder uriBuilder = HttpUriBuilder.uriBuilderFrom(baseUri); return buildUri(uriBuilder); }
@Test public void testCreateFromUri() { URI original = URI.create("http://www.example.com:8081/a%20/%C3%A5?k=1&k=2&%C3%A5=3"); assertEquals(HttpUriBuilder.uriBuilderFrom(original).build(), original); }
@Test(expectedExceptions = IllegalStateException.class, expectedExceptionsMessageRegExp = ".*scheme.*") public void testVerifiesSchemeIsSet() { uriBuilder().build(); }
@Test public void testLifecycleUnknown() throws Exception { initializeOneAgent(); Request request = Request.Builder.preparePut() .setUri(coordinatorUriBuilder().appendPath("/v1/slot/lifecycle").addParameter("binary", "apple:*").build()) .setBodyGenerator(createStaticBodyGenerator("unknown", UTF_8)) .build(); StatusResponse response = httpClient.execute(request, createStatusResponseHandler()); AgentStatus agentStatus = coordinator.getAgentByAgentId(agentId); SlotStatus apple1Status = agentStatus.getSlotStatus(apple1SotId); SlotStatus apple2Status = agentStatus.getSlotStatus(apple2SlotId); SlotStatus bananaStatus = agentStatus.getSlotStatus(bananaSlotId); assertEquals(response.getStatusCode(), Status.BAD_REQUEST.getStatusCode()); assertEquals(apple1Status.getState(), STOPPED); assertEquals(apple2Status.getState(), STOPPED); assertEquals(bananaStatus.getState(), STOPPED); }
@Override public List<CoordinatorStatusRepresentation> showCoordinators(CoordinatorFilter coordinatorFilter) { URI uri = coordinatorFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("v1/admin/coordinator")); Request request = Request.Builder.prepareGet() .setUri(uri) .build(); List<CoordinatorStatusRepresentation> coordinators = client.execute(request, createJsonResponseHandler(COORDINATORS_CODEC)); return coordinators; }
@Override public AgentStatusRepresentation terminateAgent(String agentId) { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent").build(); Request request = Request.Builder.prepareDelete() .setUri(uri) .setBodyGenerator(textBodyGenerator(agentId)) .build(); AgentStatusRepresentation agents = client.execute(request, createJsonResponseHandler(AGENT_CODEC)); return agents; }
@Override public List<SlotStatusRepresentation> install(AgentFilter agentFilter, int count, Assignment assignment, String expectedVersion) { URI uri = agentFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot").addParameter("limit", String.valueOf(count))); Request.Builder requestBuilder = Request.Builder.preparePost() .setUri(uri) .setHeader("Content-Type", "application/json") .setBodyGenerator(jsonBodyGenerator(ASSIGNMENT_CODEC, AssignmentRepresentation.from(assignment))); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Test public void testGetAllAgentsEmpty() { Request request = Request.Builder.prepareGet() .setUri(coordinatorUriBuilder().appendPath("/v1/admin/agent").build()) .build(); List<AgentStatusRepresentation> actual = httpClient.execute(request, createJsonResponseHandler(agentStatusesCodec, Status.OK.getStatusCode())); assertEquals(actual.size(), 0); }