diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/ChatUtils.java b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/ChatUtils.java index c5a175d5a..829e5891c 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/utils/ChatUtils.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/utils/ChatUtils.java @@ -89,8 +89,13 @@ public final class ChatUtils { * The amount of things * @return * {@code string} if {@code count} is 1 else {@code string + "s"} + * @throws IllegalArgumentException + * if count is less than 0 */ public static @Nonnull String checkPlurality(@Nonnull String string, int count) { + if (count < 0) { + throw new IllegalArgumentException("Argument count cannot be negative."); + } if (count == 1) { return string; } diff --git a/src/test/java/io/github/thebusybiscuit/slimefun4/utils/TestChatUtils.java b/src/test/java/io/github/thebusybiscuit/slimefun4/utils/TestChatUtils.java index 80fa61aa8..794b02e4b 100644 --- a/src/test/java/io/github/thebusybiscuit/slimefun4/utils/TestChatUtils.java +++ b/src/test/java/io/github/thebusybiscuit/slimefun4/utils/TestChatUtils.java @@ -33,4 +33,14 @@ class TestChatUtils { Assertions.assertEquals(expected, ChatUtils.removeColorCodes(ChatColor.GREEN + "Hello " + ChatColor.RED + "world")); } + @Test + @DisplayName("Test ChatUtils.checkPlurality(...)") + void testPluralization() { + String input = "Banana"; + Assertions.assertThrows(IllegalArgumentException.class, () -> ChatUtils.checkPlurality(input, -1)); + Assertions.assertEquals("Bananas", ChatUtils.checkPlurality(input, 0)); + Assertions.assertEquals("Banana", ChatUtils.checkPlurality(input, 1)); + Assertions.assertEquals("Bananas", ChatUtils.checkPlurality(input, 2)); + } + }