diff --git a/sdk/src/main/java/com/ifountain/opsgenie/client/OpsGenieClient.java b/sdk/src/main/java/com/ifountain/opsgenie/client/OpsGenieClient.java index 51e5cf58..a6d3a3c9 100644 --- a/sdk/src/main/java/com/ifountain/opsgenie/client/OpsGenieClient.java +++ b/sdk/src/main/java/com/ifountain/opsgenie/client/OpsGenieClient.java @@ -145,7 +145,7 @@ public OpsGenieClient(OpsGenieHttpClient httpClient) { this.jsonHttpClient.setApiKey(getApiKey()); this.restApiClient = new RestApiClient(httpClient); this.restApiClient.setApiKey(getApiKey()); - this.swaggerApiClient = Configuration.getDefaultApiClient(); + this.swaggerApiClient = getApiClient(); innerUserOpsGenieClient = new InnerUserOpsGenieClient(this.jsonHttpClient); innerGroupOpsGenieClient = new InnerGroupOpsGenieClient(this.jsonHttpClient); innerTeamOpsGenieClient = new InnerTeamOpsGenieClient(this.jsonHttpClient); @@ -160,6 +160,16 @@ public OpsGenieClient(OpsGenieHttpClient httpClient) { } + private ApiClient getApiClient() { + ApiClient client = new ApiClient(); + + // Configure API key authorization: GenieKey + ApiKeyAuth genieKey = (ApiKeyAuth) client.getAuthentication("GenieKey"); + genieKey.setApiKeyPrefix("GenieKey"); + + return client; + } + /** * @see IOpsGenieClient#user() */ @@ -384,15 +394,7 @@ public CopyNotificationRulesResponse copyNotificationRules(CopyNotificationRules } public AlertApi alertV2() { - // Configure API key authorization: GenieKey - ApiKeyAuth genieKey = (ApiKeyAuth) swaggerApiClient.getAuthentication("GenieKey"); - - if (StringUtils.isNotEmpty(getApiKey())) { - genieKey.setApiKey(getApiKey()); - } - genieKey.setApiKeyPrefix("GenieKey"); - - return new AlertApi(); + return new AlertApi(swaggerApiClient); } /** diff --git a/sdk/src/test/groovy/com/ifountain/opsgenie/client/AlertV2OpsGenieClientTest.groovy b/sdk/src/test/groovy/com/ifountain/opsgenie/client/AlertV2OpsGenieClientTest.groovy new file mode 100644 index 00000000..69295606 --- /dev/null +++ b/sdk/src/test/groovy/com/ifountain/opsgenie/client/AlertV2OpsGenieClientTest.groovy @@ -0,0 +1,43 @@ +package com.ifountain.opsgenie.client; + +import com.ifountain.opsgenie.client.http.HttpTestRequestListener +import com.ifountain.opsgenie.client.swagger.auth.ApiKeyAuth; +import com.ifountain.opsgenie.client.test.util.OpsGenieClientTestCase; +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +class AlertV2OpsGenieClientTest extends OpsGenieClientTestCase implements HttpTestRequestListener { + @Test + void testApiKeySetAsExpected() throws Exception { + // Given + def client1 = new OpsGenieClient() + client1.apiKey = "secret-1" + + def client2 = new OpsGenieClient() + client2.apiKey = "secret-2" + + // When + def api1 = client1.alertV2() + def api2 = client2.alertV2() + + // Then + assertEquals("secret-1", ((ApiKeyAuth) api1.getApiClient().getAuthentication("GenieKey")).apiKey) + assertEquals("secret-2", ((ApiKeyAuth) api2.getApiClient().getAuthentication("GenieKey")).apiKey) + } + + @Test + void testApplyHeaders() throws Exception { + // Given + def client = new OpsGenieClient() + client.apiKey = "secret" + + def headers = new HashMap() + + // When + ((ApiKeyAuth) client.alertV2().apiClient.getAuthentication("GenieKey")).applyToParams([], headers) + + // Then + assertEquals("GenieKey secret", headers["Authorization"]) + } +} diff --git a/test/build.gradle b/test/build.gradle index e7d15cd2..4ac45915 100644 --- a/test/build.gradle +++ b/test/build.gradle @@ -8,4 +8,5 @@ dependencies { compile 'org.apache.directory.studio:org.apache.commons.lang:2.6' compile 'org.littleshoot:littleproxy:0.5.OG-atlassian-hosted' compile 'junit:junit:4.12' + compile 'log4j:log4j:1.2.16' } \ No newline at end of file