Skip to content

Commit

Permalink
Improve getOpcPath to return exception during failure and add unit te…
Browse files Browse the repository at this point in the history
…st coverage
  • Loading branch information
klustria committed Jan 9, 2024
1 parent 8af9186 commit e1e19e9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 7 deletions.
7 changes: 6 additions & 1 deletion integrations/oci/sdk/runtime/pom.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2018, 2023 Oracle and/or its affiliates.
Copyright (c) 2018, 2024 Oracle and/or its affiliates.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -93,6 +93,11 @@
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-params</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
@Singleton
@Weight(ServiceInfoBasics.DEFAULT_INJECT_WEIGHT)
class OciAvailabilityDefault implements OciAvailability {
private static final String OPC_PATH = getOpcPath();
private static final String OPC_PATH = getOpcPath(METADATA_SERVICE_BASE_URL);

@Override
public boolean isRunningOnOci(OciConfig ociConfig) {
Expand Down Expand Up @@ -74,15 +74,15 @@ static boolean canReach(String address,
}
}

private static String getOpcPath() {
String input = METADATA_SERVICE_BASE_URL;
static String getOpcPath(String metadataServiceBaseURL) {
String input = metadataServiceBaseURL;
int index = -1;
for (int nth = 3; nth > 0; nth--) {
index = input.indexOf("/", index + 1);
if (index == -1) {
return null;
throw new IllegalStateException("Unable to find opc path from '" + metadataServiceBaseURL + "'");
}
}
return METADATA_SERVICE_BASE_URL.substring(index);
return metadataServiceBaseURL.substring(index);
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2023 Oracle and/or its affiliates.
* Copyright (c) 2023, 2024 Oracle and/or its affiliates.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -19,9 +19,12 @@
import java.util.Objects;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;

class OciAvailabilityTest {

Expand All @@ -32,4 +35,22 @@ void isRunningOnOci() {
is(false));
}

@Test
void getValidOpcPath() {
assertThat(OciAvailabilityDefault.getOpcPath("http://169.254.169.254/opc/v2/"),
is("/opc/v2/"));
}

@ParameterizedTest
@ValueSource(strings = {
"http169.254.169.254opcv2",
"http://169.254.169.254",
})
void getInValidOpcPath(String metadataServiceBaseURL) {
Exception e = assertThrows(IllegalStateException.class, () -> {
OciAvailabilityDefault.getOpcPath(metadataServiceBaseURL);
});
String expectedMessage = "Unable to find opc path from '" + metadataServiceBaseURL + "'";
assertThat(e.getMessage(), is(expectedMessage));
}
}

0 comments on commit e1e19e9

Please sign in to comment.