summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-06-15 16:46:54 +0200
committerHarald Musum <musum@yahooinc.com>2023-06-15 16:46:54 +0200
commit2b5ab437ed5ba1730fab8da37be87fc74965eb6d (patch)
treef721a8d45e673677ccc7ad3c0fcbb166c4445d51 /config-provisioning
parent23a0b1ee5b3eba63b6ac74c444a56da03ce49cb1 (diff)
Unescape split character and test with both fromSerializedForm and fromFullString
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java3
-rw-r--r--config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java36
2 files changed, 12 insertions, 27 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
index 1a7cc5db580..a20213edfee 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ApplicationId.java
@@ -68,8 +68,9 @@ public class ApplicationId implements Comparable<ApplicationId> {
private static ApplicationId fromIdString(String idString, String splitCharacter) {
String[] parts = idString.split(splitCharacter);
+ String unescapedSplitCharacter = splitCharacter.equals("\\.") ? "." : splitCharacter;
String errorMessage = "Application ids must be on the form tenant" +
- splitCharacter + "application" + splitCharacter + "instance, but was " + idString;
+ unescapedSplitCharacter + "application" + unescapedSplitCharacter + "instance, but was " + idString;
if (parts.length < 3)
throw new IllegalArgumentException(errorMessage);
// TODO: Throw exception when we have verified no-one is abusing this with more than 3 parts in id string
diff --git a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
index 0b22de35cf0..72f2a64a599 100644
--- a/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
+++ b/config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java
@@ -14,12 +14,10 @@ import static com.yahoo.config.provision.ApplicationId.global;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.fail;
/**
* @author Ulf Lilleengen
* @author vegard
- * @since 5.1
*/
public class ApplicationIdTest {
@@ -82,33 +80,19 @@ public class ApplicationIdTest {
@Test
void require_that_invalid_idstring_throws_exception() {
- try {
- ApplicationId.fromSerializedForm("foo:baz");
- fail("Expected to fail");
- } catch (IllegalArgumentException e) {
- assertEquals("Application ids must be on the form tenant:application:instance, but was foo:baz", e.getMessage());
- }
- try {
- ApplicationId.fromSerializedForm("foo.baz");
- fail("Expected to fail");
- } catch (IllegalArgumentException e) {
- assertEquals("Application ids must be on the form tenant:application:instance, but was foo.baz", e.getMessage());
- }
+ var e = assertThrows(IllegalArgumentException.class, () -> ApplicationId.fromSerializedForm("foo:baz"));
+ assertEquals("Application ids must be on the form tenant:application:instance, but was foo:baz", e.getMessage());
+
+ e = assertThrows(IllegalArgumentException.class, () -> ApplicationId.fromFullString("foo.baz"));
+ assertEquals("Application ids must be on the form tenant.application.instance, but was foo.baz", e.getMessage());
// TODO: Add when we throw exception on strings with too many parts
/*
- try {
- ApplicationId.fromSerializedForm("foo:baz:bar:xyzzy");
- fail("Expected to fail");
- } catch (IllegalArgumentException e) {
- assertEquals("Application ids must be on the form tenant:application:instance, but was foo:baz:bar:xyzzy", e.getMessage());
- }
- try {
- ApplicationId.fromSerializedForm("foo.baz:bar:xyzzy");
- fail("Expected to fail");
- } catch (IllegalArgumentException e) {
- assertEquals("Application ids must be on the form tenant:application:instance, but was foo.baz.bar.xyzzy", e.getMessage());
- }
+ e = assertThrows(IllegalArgumentException.class, () -> ApplicationId.fromSerializedForm("foo:baz:bar:xyzzy"));
+ assertEquals("Application ids must be on the form tenant:application:instance, but was foo:baz:bar:xyzzy", e.getMessage());
+
+ e = assertThrows(IllegalArgumentException.class, () -> ApplicationId.fromFullString("foo.baz.bar.xyzzy"));
+ assertEquals("Application ids must be on the form tenant.application.instance, but was foo.baz.bar.xyzzy", e.getMessage());
*/
}