From 92bb58367e7c12bba4261db56708418efeb3215e Mon Sep 17 00:00:00 2001 From: Tom Bolks Date: Sat, 12 Nov 2022 21:31:04 +0100 Subject: [PATCH 1/2] Added a simple test for collection log regex. Fixed regex now works with ' and () in item names. --- .../notifiers/CollectionNotifier.java | 2 +- .../CollectionNotifierTest.java | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 src/test/java/universalDiscord/CollectionNotifierTest.java diff --git a/src/main/java/universalDiscord/notifiers/CollectionNotifier.java b/src/main/java/universalDiscord/notifiers/CollectionNotifier.java index 4e1e19c..4cc76c0 100644 --- a/src/main/java/universalDiscord/notifiers/CollectionNotifier.java +++ b/src/main/java/universalDiscord/notifiers/CollectionNotifier.java @@ -12,7 +12,7 @@ import java.util.regex.Pattern; public class CollectionNotifier extends BaseNotifier implements ChatMessageHandler { - private static final Pattern COLLECTION_LOG_REGEX = Pattern.compile("New item added to your collection log: (?[\\w,\\s-.]+)"); + public static final Pattern COLLECTION_LOG_REGEX = Pattern.compile("New item added to your collection log: (?[\\w,\\s-.'()]+)"); private Matcher lastMatcher; diff --git a/src/test/java/universalDiscord/CollectionNotifierTest.java b/src/test/java/universalDiscord/CollectionNotifierTest.java new file mode 100644 index 0000000..2de1ae3 --- /dev/null +++ b/src/test/java/universalDiscord/CollectionNotifierTest.java @@ -0,0 +1,38 @@ +package universalDiscord; + +import org.junit.Test; +import universalDiscord.notifiers.CollectionNotifier; + +import java.util.regex.Matcher; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + + +public class CollectionNotifierTest { + + + @Test + public void testCollectionLogRegex() { + String[] itemNames = { + "Xerics talisman", + "Jar of miasma", + "Saradomin's light", + "Craw's bow", + "Thammaron's sceptre", + "Chompy bird hat (ogre yeoman)", + "Robe bottoms of the eye", + "Bucket helm (g)", + "Black d'hide body (g)", + "Tzhaar-ket-om ornament kit", + }; + + for (String itemName : itemNames) { + String chatLine = "New item added to your collection log: " + itemName; + Matcher matcher = CollectionNotifier.COLLECTION_LOG_REGEX.matcher(chatLine); + boolean finds = matcher.find(); + assertTrue(finds); + assertEquals(itemName, matcher.group("itemName")); + } + } +} From 2b074c7544c170d893072e811e4152741ffa0964 Mon Sep 17 00:00:00 2001 From: Tom Bolks Date: Sat, 12 Nov 2022 21:35:26 +0100 Subject: [PATCH 2/2] Fixed Xeric talisman in test --- src/test/java/universalDiscord/CollectionNotifierTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/universalDiscord/CollectionNotifierTest.java b/src/test/java/universalDiscord/CollectionNotifierTest.java index 2de1ae3..20840d7 100644 --- a/src/test/java/universalDiscord/CollectionNotifierTest.java +++ b/src/test/java/universalDiscord/CollectionNotifierTest.java @@ -15,7 +15,7 @@ public class CollectionNotifierTest { @Test public void testCollectionLogRegex() { String[] itemNames = { - "Xerics talisman", + "Xeric's talisman (inert)", "Jar of miasma", "Saradomin's light", "Craw's bow",