@Test public void testNothingChangesIfNoCustomVersion() { ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(new Properties())); HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) .addQueryParam("api-version", "foo").build(); HttpRequest filtered = filter.filter(request); assertEquals(filtered.getEndpoint().getQuery(), "api-version=foo"); }
@Test public void testOverrideMethodVersion() { Properties props = new Properties(); props.setProperty(API_VERSION_PREFIX + "named:get", "namedversion"); props.setProperty(API_VERSION_PREFIX + "VersionedApi.noName", "noNameversion"); ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(props)); HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost") .invocation(noName).addQueryParam("api-version", "original", "original2").build(); HttpRequest filtered = filter.filter(request); assertEquals(filtered.getEndpoint().getQuery(), "api-version=noNameversion"); request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) .addQueryParam("api-version", "original", "original2").build(); filtered = filter.filter(request); assertEquals(filtered.getEndpoint().getQuery(), "api-version=namedversion"); }
@Test public void testFallbackToClassName() { Properties props = new Properties(); props.setProperty(API_VERSION_PREFIX + "VersionedApi", "classversion"); ApiVersionFilter filter = new ApiVersionFilter(config, filterStringsBoundToInjectorByName(props)); HttpRequest request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost") .invocation(noName).addQueryParam("api-version", "original", "original2").build(); HttpRequest filtered = filter.filter(request); assertEquals(filtered.getEndpoint().getQuery(), "api-version=classversion"); request = GeneratedHttpRequest.builder().method("GET").endpoint("http://localhost").invocation(named) .addQueryParam("api-version", "original", "original2").build(); filtered = filter.filter(request); assertEquals(filtered.getEndpoint().getQuery(), "api-version=classversion"); }
@Test void testGetObjectACLSignature() { Invocation invocation = Invocation.create(method(S3Client.class, "getObjectACL", String.class, String.class), ImmutableList.<Object>of(BUCKET_NAME)); HttpRequest getObjectACL = GeneratedHttpRequest.builder().method("GET") .invocation(invocation) .endpoint("https://" + BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn/" + OBJECT_NAME) .addHeader(HttpHeaders.HOST, BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn") .addQueryParam("acl", "") .build(); HttpRequest filtered = filter(temporaryCredentials).filter(getObjectACL); assertEquals(filtered.getFirstHeaderOrNull("Authorization"), GET_OBJECT_ACL_RESULT); }
@Test void testGetBucketLocationSignature() { Invocation invocation = Invocation.create(method(S3Client.class, "getBucketLocation", String.class), ImmutableList.<Object>of(BUCKET_NAME)); HttpRequest getBucketLocation = GeneratedHttpRequest.builder().method("GET") .invocation(invocation) .endpoint("https://" + BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn/") .addHeader(HttpHeaders.HOST, BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn") .addQueryParam("location", "") .build(); HttpRequest filtered = filter(temporaryCredentials).filter(getBucketLocation); assertEquals(filtered.getFirstHeaderOrNull("Authorization"), GET_BUCKET_LOCATION_SIGNATURE_RESULT); }