Refine search
@Override public ParseObjectFromResponse setContext(HttpRequest request) { this.uri = request.getEndpoint().toString(); this.name = GeneratedHttpRequest.class.cast(request).getInvocation().getArgs().get(0).toString(); return this; } }
public void testCreateGetQuery() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestRequest.class, "getQuery", String.class); GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of("1"))); assertEquals(request.getEndpoint().getHost(), "localhost"); assertEquals(request.getEndpoint().getPath(), "/1"); assertEquals(request.getEndpoint().getQuery(), "max-keys=0"); assertEquals(request.getMethod(), HttpMethod.GET); assertEquals(request.getHeaders().size(), 0); }
@Override public ParseObjectListFromResponse setContext(HttpRequest request) { parseContainer.name = GeneratedHttpRequest.class.cast(request).getCaller().get().getArgs().get(1).toString(); String containerUri = request.getEndpoint().toString(); int queryIndex = containerUri.indexOf('?'); if (queryIndex != -1) { containerUri = containerUri.substring(0, queryIndex); } toSwiftObject = new ToSwiftObject(containerUri); return this; }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), (ListOptions) listOptions.orNull())); }
public void testOverriddenEndpointParameter() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestOverriddenEndpoint.class, "foo", URI.class); GeneratedHttpRequest request = processor.apply(Invocation.create(method, ImmutableList.<Object> of(URI.create("http://wowsa:8001")))); assertEquals(request.getEndpoint().getHost(), "wowsa"); assertEquals(request.getEndpoint().getPort(), 8001); assertEquals(request.getEndpoint().getPath(), ""); assertEquals(request.getMethod(), "POST"); }
@Test public void testBuildOneForm() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestFormReplace.class, "oneForm", String.class); Object form = processor.apply(Invocation.create(method, ImmutableList.<Object> of("robot"))) .getPayload().getRawContent(); assertEquals(form, "x-amz-copy-source=/robot"); }
@Test public void testBuildTwoQuery() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestQueryReplace.class, "twoQuery", String.class); String query = processor.apply(Invocation.create(method, ImmutableList.<Object> of("robot"))) .getEndpoint().getQuery(); assertEquals(query, "slash=/robot&hyphen=-robot"); }
public void oneTransformerWithContext() throws SecurityException, NoSuchMethodException { GeneratedHttpRequest request = GeneratedHttpRequest.builder() .method("GET") .endpoint("http://localhost") .invocation( Invocation.create(method(TestTransformers.class, "oneTransformerWithContext"), ImmutableList.of())).build(); Function<HttpResponse, ?> transformer = this.transformer.apply(request); assertEquals(transformer.getClass(), ReturnStringIf200Context.class); assertEquals(((ReturnStringIf200Context) transformer).request, request); }
protected GeneratedHttpRequest requestForArgs(List<Object> args) { try { Invocation invocation = Invocation.create(method(String.class, "toString"), args); return GeneratedHttpRequest.builder().method("POST").endpoint(URI.create("http://localhost/key")) .invocation(invocation).build(); } catch (SecurityException e) { throw Throwables.propagate(e); } } }
@Test public void testCorrect() throws SecurityException, NoSuchMethodException { Invokable<?, Object> testPayload = method(TestPayload.class, "testPayload", String.class); GeneratedHttpRequest request = GeneratedHttpRequest.builder() .invocation(Invocation.create(testPayload, ImmutableList.<Object> of("robot"))) .method("POST").endpoint("http://localhost").build(); GeneratedHttpRequest newRequest = binder().bindToRequest(request, ImmutableMap.<String, Object> of("fooble", "robot")); assertEquals(newRequest.getRequestLine(), request.getRequestLine()); assertEquals(newRequest.getPayload().getRawContent(), "name robot"); }
public void testDefault() throws IOException { String expected = "name newdrive"; GeneratedHttpRequest request = requestForArgs(ImmutableList.<Object> of()); Map<String, Object> map = ImmutableMap.<String, Object> of("name", "newdrive"); assertEquals(binder.bindToRequest(request, map).getPayload().getRawContent(), expected); }
public void testRequestFilterOverrideOnRequest() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestRequestFilter.class, "getOverride", HttpRequest.class); GeneratedHttpRequest request = processor.apply( Invocation.create(method, ImmutableList.<Object> of(HttpRequest.builder().method("GET").endpoint("http://localhost") .addHeader("foo", "bar").build()))); assertEquals(request.getFilters().size(), 1); assertEquals(request.getHeaders().size(), 1); assertEquals(request.getFilters().get(0).getClass(), TestRequestFilter2.class); }
public void testRegisterSSHKeyPair() throws SecurityException, NoSuchMethodException, IOException { Invokable<?, ?> method = method(SSHKeyPairAsyncClient.class, "registerSSHKeyPair", String.class, String.class); String publicKey = URLEncoder.encode(SshKeys.generate().get("public"), "UTF-8"); GeneratedHttpRequest httpRequest = processor.createRequest(method, ImmutableList.<Object> of("jclouds-keypair", publicKey)); assertRequestLineEquals(httpRequest, "GET http://localhost:8080/client/api?response=json&command=registerSSHKeyPair&name=jclouds-keypair&publickey=" + publicKey + " HTTP/1.1"); assertNonPayloadHeadersEqual(httpRequest, "Accept: application/json\n"); assertPayloadEquals(httpRequest, null, null, false); assertResponseParserClassEquals(method, httpRequest, ParseFirstJsonValueNamed.class); assertSaxResponseParserClassEquals(method, null); assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class); assertEquals(httpRequest.getFilters().size(), 1); assertEquals(httpRequest.getFilters().get(0).getClass(), QuerySigner.class); }
public void testRemoveLaunchPermissionsFromImage() throws SecurityException, NoSuchMethodException, IOException { Invokable<?, ?> method = method(AMIAsyncClient.class, "removeLaunchPermissionsFromImageInRegion", String.class, Iterable.class, Iterable.class, String.class); GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, ImmutableList.of("bob", "sue"), ImmutableList .of("all"), "imageId")); request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); assertPayloadEquals(request, removeLaunchPermission.getPayload().getRawContent().toString(), "application/x-www-form-urlencoded", false); assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class); assertSaxResponseParserClassEquals(method, null); assertFallbackClassEquals(method, null); checkFilters(request); }
@Test public void testRequestFilter() throws SecurityException, NoSuchMethodException { Invokable<?, ?> method = method(TestRequestFilter.class, "get"); GeneratedHttpRequest request = processor.apply(Invocation.create(method)); assertEquals(request.getFilters().size(), 2); assertEquals(request.getFilters().get(0).getClass(), TestRequestFilter1.class); assertEquals(request.getFilters().get(1).getClass(), TestRequestFilter2.class); }
public static String getBucketName(HttpRequest req) { checkArgument(req instanceof GeneratedHttpRequest, "this should be a generated http request"); GeneratedHttpRequest request = GeneratedHttpRequest.class.cast(req); String bucketName = null; for (int i = 0; i < request.getInvocation().getInvokable().getParameters().size(); i++) { if (any(Arrays.asList(request.getInvocation().getInvokable().getParameters().get(i).getAnnotations()), ANNOTATIONTYPE_BUCKET)) { bucketName = (String) request.getInvocation().getArgs().get(i); break; } } return bucketName; }
protected VApp findVAppInArgsOrNull(GeneratedHttpRequest gRequest) { for (Object arg : gRequest.getInvocation().getArgs()) { if (arg instanceof VApp) { return (VApp) arg; } else if (arg instanceof VApp[]) { VApp[] vapps = (VApp[]) arg; return (vapps.length > 0) ? vapps[0] : null; } } return null; }
public void testSetBlockDeviceMappingForInstanceInRegion() throws SecurityException, NoSuchMethodException, IOException { Invokable<?, ?> method = method(InstanceAsyncClient.class, "setBlockDeviceMappingForInstanceInRegion", String.class, String.class, Map.class); Map<String, BlockDevice> mapping = Maps.newLinkedHashMap(); mapping.put("/dev/sda1", new BlockDevice("vol-test1", true)); GeneratedHttpRequest request = processor.createRequest(method, Lists.<Object> newArrayList(null, "1", mapping)); request = (GeneratedHttpRequest) request.getFilters().get(0).filter(request); assertRequestLineEquals(request, "POST https://ec2.us-east-1.amazonaws.com/ HTTP/1.1"); assertNonPayloadHeadersEqual(request, "Host: ec2.us-east-1.amazonaws.com\n"); assertPayloadEquals(request, filter.filter(setBlockDeviceMapping).getPayload().getRawContent().toString(), "application/x-www-form-urlencoded", false); checkFilters(request); }
@Override public Iterator<ListPage<T>> apply(ListPage<T> input) { if (input.nextPageToken() == null) { return ListPages.singletonOrEmptyIterator(input); } String arg0 = (String) request.getCaller().get().getArgs().get(0); O options = ListPages.listOptions(request.getInvocation().getArgs()); return new AdvancingIterator<T>(input, fetchNextPage(arg0, options)); }