diff options
author | Harald Musum <musum@yahooinc.com> | 2023-06-15 16:46:54 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-06-15 16:46:54 +0200 |
commit | 2b5ab437ed5ba1730fab8da37be87fc74965eb6d (patch) | |
tree | f721a8d45e673677ccc7ad3c0fcbb166c4445d51 /config-provisioning | |
parent | 23a0b1ee5b3eba63b6ac74c444a56da03ce49cb1 (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.java | 3 | ||||
-rw-r--r-- | config-provisioning/src/test/java/com/yahoo/config/provision/ApplicationIdTest.java | 36 |
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()); */ } |