Fix api-key token mixup, more tests

This commit is contained in:
dotasek 2024-11-07 18:07:23 -05:00
parent e9917defb0
commit 822f0866b4
2 changed files with 57 additions and 10 deletions

View File

@ -60,7 +60,6 @@ public class ManagedWebAccessAuthTests {
@Test @Test
public void testBasicAuthCase() throws IOException, InterruptedException { public void testBasicAuthCase() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withBasicAuth("dummy1", "pass1"); ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withBasicAuth("dummy1", "pass1");
testBasicServerAuth(builder); testBasicServerAuth(builder);
@ -91,14 +90,20 @@ public class ManagedWebAccessAuthTests {
@Test @Test
public void testTokenAuthCase() throws IOException, InterruptedException { public void testTokenAuthCase() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withToken(DUMMY_TOKEN);
testTokenAuthCase(builder);
}
private void testTokenAuthCase(ManagedFhirWebAccessor builder) throws IOException, InterruptedException {
HttpUrl serverUrl = server.url("blah/blah/blah?arg=blah"); HttpUrl serverUrl = server.url("blah/blah/blah?arg=blah");
server.enqueue( server.enqueue(
new MockResponse() new MockResponse()
.setBody("Dummy Response").setResponseCode(200) .setBody("Dummy Response").setResponseCode(200)
); );
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withToken(DUMMY_TOKEN);
HTTPResult result = builder.httpCall(new HTTPRequest().withUrl(serverUrl.toString()).withMethod(HTTPRequest.HttpMethod.GET)); HTTPResult result = builder.httpCall(new HTTPRequest().withUrl(serverUrl.toString()).withMethod(HTTPRequest.HttpMethod.GET));
assertThat(result.getCode()).isEqualTo(200); assertThat(result.getCode()).isEqualTo(200);
@ -112,7 +117,7 @@ public class ManagedWebAccessAuthTests {
assertThat(packageRequest.getHeader("Authorization")).isEqualTo("Bearer " + DUMMY_TOKEN); assertThat(packageRequest.getHeader("Authorization")).isEqualTo("Bearer " + DUMMY_TOKEN);
} }
private static void assertExpectedHeaders(RecordedRequest packageRequest, String expectedUrl, String expectedHttpMethod) { private void assertExpectedHeaders(RecordedRequest packageRequest, String expectedUrl, String expectedHttpMethod) {
assertThat(packageRequest.getRequestUrl().toString()).isEqualTo(expectedUrl); assertThat(packageRequest.getRequestUrl().toString()).isEqualTo(expectedUrl);
assertThat(packageRequest.getMethod()).isEqualTo(expectedHttpMethod); assertThat(packageRequest.getMethod()).isEqualTo(expectedHttpMethod);
assertThat(packageRequest.getHeader("User-Agent")).isEqualTo(DUMMY_AGENT); assertThat(packageRequest.getHeader("User-Agent")).isEqualTo(DUMMY_AGENT);
@ -120,14 +125,19 @@ public class ManagedWebAccessAuthTests {
@Test @Test
public void testApiKeyAuthCase() throws IOException, InterruptedException { public void testApiKeyAuthCase() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withApiKey(DUMMY_API_KEY);
testApiKeyAuthCase(builder);
}
private void testApiKeyAuthCase(ManagedFhirWebAccessor builder) throws IOException, InterruptedException {
HttpUrl serverUrl = server.url("blah/blah/blah?arg=blah"); HttpUrl serverUrl = server.url("blah/blah/blah?arg=blah");
server.enqueue( server.enqueue(
new MockResponse() new MockResponse()
.setBody("Dummy Response").setResponseCode(200) .setBody("Dummy Response").setResponseCode(200)
); );
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor("dummyAgent", null).withApiKey(DUMMY_API_KEY);
HTTPResult result = builder.httpCall(new HTTPRequest().withUrl(serverUrl.toString()).withMethod(HTTPRequest.HttpMethod.GET)); HTTPResult result = builder.httpCall(new HTTPRequest().withUrl(serverUrl.toString()).withMethod(HTTPRequest.HttpMethod.GET));
assertThat(result.getCode()).isEqualTo(200); assertThat(result.getCode()).isEqualTo(200);
@ -142,7 +152,7 @@ public class ManagedWebAccessAuthTests {
} }
@Test @Test
public void testServerAuthFromSettings() throws IOException, InterruptedException { public void testBasicAuthFromSettings() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor( ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor(
"dummyAgent", "dummyAgent",
List.of(getBasicAuthServerPojo())); List.of(getBasicAuthServerPojo()));
@ -151,13 +161,50 @@ public class ManagedWebAccessAuthTests {
} }
private ServerDetailsPOJO getBasicAuthServerPojo() { private ServerDetailsPOJO getBasicAuthServerPojo() {
ServerDetailsPOJO pojo = new ServerDetailsPOJO( return new ServerDetailsPOJO(
server.url("").toString(), server.url("").toString(),
"basic", "basic",
"dummyServerType", "dummyServerType",
DUMMY_USERNAME, DUMMY_USERNAME,
DUMMY_PASSWORD, DUMMY_PASSWORD,
null, null); null, null);
return pojo; }
@Test
public void testTokenAuthFromSettings() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor(
"dummyAgent",
List.of(getTokenAuthServerPojo()));
testTokenAuthCase(builder);
}
private ServerDetailsPOJO getTokenAuthServerPojo() {
return new ServerDetailsPOJO(
server.url("").toString(),
"token",
"dummyServerType",
null,
null,
DUMMY_TOKEN, null);
}
@Test
public void testApiKeyAuthFromSettings() throws IOException, InterruptedException {
ManagedFhirWebAccessor builder = new ManagedFhirWebAccessor(
"dummyAgent",
List.of(getApiKeyAuthServerPojo()));
testApiKeyAuthCase(builder);
}
private ServerDetailsPOJO getApiKeyAuthServerPojo() {
return new ServerDetailsPOJO(
server.url("").toString(),
"apikey",
"dummyServerType",
null,
null,
null, DUMMY_API_KEY);
} }
} }

View File

@ -100,7 +100,7 @@ public class ManagedFhirWebAccessor extends ManagedWebAccessorBase<ManagedFhirWe
headers.add(new HTTPHeader("Authorization", tokenCredential)); headers.add(new HTTPHeader("Authorization", tokenCredential));
break; break;
case "apikey": case "apikey":
String apiKeyCredential = settings.getToken(); String apiKeyCredential = settings.getApikey();
headers.add(new HTTPHeader("Api-Key", apiKeyCredential)); headers.add(new HTTPHeader("Api-Key", apiKeyCredential));
break; break;
} }