From 9cb65d72a3a46b5f9886d03777e7202e79b62034 Mon Sep 17 00:00:00 2001 From: md_5 Date: Tue, 10 Jul 2018 12:21:23 +1000 Subject: Be more strict about what constitutes a valid NamespacedKey * Brings us largely in line with what is supported by the implementation * Adds unit tests --- src/test/java/org/bukkit/NamespacedKeyTest.java | 49 +++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/test/java/org/bukkit/NamespacedKeyTest.java (limited to 'src/test') diff --git a/src/test/java/org/bukkit/NamespacedKeyTest.java b/src/test/java/org/bukkit/NamespacedKeyTest.java new file mode 100644 index 00000000..7c71aabf --- /dev/null +++ b/src/test/java/org/bukkit/NamespacedKeyTest.java @@ -0,0 +1,49 @@ +package org.bukkit; + +import org.junit.Assert; +import org.junit.Test; + +public class NamespacedKeyTest { + + @Test + public void testValid() { + Assert.assertEquals("minecraft:foo", new NamespacedKey("minecraft", "foo").toString()); + Assert.assertEquals("minecraft:foo/bar", new NamespacedKey("minecraft", "foo/bar").toString()); + Assert.assertEquals("minecraft:foo/bar_baz", new NamespacedKey("minecraft", "foo/bar_baz").toString()); + Assert.assertEquals("minecraft:foo/bar_baz-qux", new NamespacedKey("minecraft", "foo/bar_baz-qux").toString()); + Assert.assertEquals("minecraft:foo/bar_baz-qux.quux", new NamespacedKey("minecraft", "foo/bar_baz-qux.quux").toString()); + } + + @Test(expected = IllegalArgumentException.class) + public void testEmptyNamespace() { + new NamespacedKey("", "foo").toString(); + } + + @Test(expected = IllegalArgumentException.class) + public void testEmptyKey() { + new NamespacedKey("minecraft", "").toString(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidNamespace() { + new NamespacedKey("minecraft/test", "foo").toString(); + } + + @Test(expected = IllegalArgumentException.class) + public void testInvalidKey() { + new NamespacedKey("minecraft", "foo!").toString(); + } + + @Test + public void testBelowLength() { + new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas", + "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString(); + } + + @Test(expected = IllegalArgumentException.class) + public void testAboveLength() { + new NamespacedKey("loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas", + "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas/" + + "loremipsumdolorsitametconsecteturadipiscingelitduisvolutpatvelitsitametmaximusscelerisquemorbiullamcorperexacconsequategestas").toString(); + } +} -- cgit v1.2.3