@VisibleForTesting static String fromPackage(Package classPackage) { String agent = Optional.ofNullable(classPackage.getImplementationTitle()).orElse(DEFAULT_VALUE); String version = Optional.ofNullable(classPackage.getImplementationVersion()).orElse(DEFAULT_VALUE); return fromStrings(agent, version); } }
@Test public void userAgentIncludesAtlasDb() { MatcherAssert.assertThat(UserAgents.fromStrings(PACKAGE_TITLE, PACKAGE_VERSION), is(PACKAGE_USER_AGENT)); }
@Test public void canGetUserAgentDataFromClass() { Class<BlockingDeque> clazz = BlockingDeque.class; String expectedUserAgent = UserAgents.fromStrings( clazz.getPackage().getImplementationTitle(), clazz.getPackage().getImplementationVersion()); MatcherAssert.assertThat(UserAgents.fromClass(clazz), is(expectedUserAgent)); } }
@Test public void directProxyIsConfigurableOnClientRequests() { Optional<ProxySelector> directProxySelector = Optional.of( ServiceCreator.createProxySelector(ProxyConfiguration.DIRECT)); TestResource clientWithDirectCall = AtlasDbHttpClients.createProxyWithFailover( new MetricRegistry(), NO_SSL, directProxySelector, ImmutableSet.of(getUriForPort(availablePort)), TestResource.class); clientWithDirectCall.getTestNumber(); String defaultUserAgent = UserAgents.fromStrings(UserAgents.DEFAULT_VALUE, UserAgents.DEFAULT_VALUE); availableServer.verify(getRequestedFor(urlMatching(TEST_ENDPOINT)) .withHeader(FeignOkHttpClients.USER_AGENT_HEADER, WireMock.equalTo(defaultUserAgent))); }
@Test public void userAgentIsPresentOnClientRequests() { TestResource client = AtlasDbHttpClients.createProxy( new MetricRegistry(), NO_SSL, getUriForPort(availablePort), TestResource.class); client.getTestNumber(); String defaultUserAgent = UserAgents.fromStrings(UserAgents.DEFAULT_VALUE, UserAgents.DEFAULT_VALUE); availableServer.verify(getRequestedFor(urlMatching(TEST_ENDPOINT)) .withHeader(FeignOkHttpClients.USER_AGENT_HEADER, WireMock.equalTo(defaultUserAgent))); }
@Test public void httpProxyIsConfigurableOnClientRequests() { Optional<ProxySelector> httpProxySelector = Optional.of( ServiceCreator.createProxySelector(ProxyConfiguration.of(getHostAndPort(proxyPort)))); TestResource clientWithHttpProxy = AtlasDbHttpClients.createProxyWithFailover( new MetricRegistry(), NO_SSL, httpProxySelector, ImmutableSet.of(getUriForPort(availablePort)), TestResource.class); clientWithHttpProxy.getTestNumber(); String defaultUserAgent = UserAgents.fromStrings(UserAgents.DEFAULT_VALUE, UserAgents.DEFAULT_VALUE); proxyServer.verify(getRequestedFor(urlMatching(TEST_ENDPOINT)) .withHeader(FeignOkHttpClients.USER_AGENT_HEADER, WireMock.equalTo(defaultUserAgent))); availableServer.verify(0, getRequestedFor(urlMatching(TEST_ENDPOINT))); }
@VisibleForTesting static String fromPackage(Package classPackage) { String agent = Optional.ofNullable(classPackage.getImplementationTitle()).orElse(DEFAULT_VALUE); String version = Optional.ofNullable(classPackage.getImplementationVersion()).orElse(DEFAULT_VALUE); return fromStrings(agent, version); } }