From f73a04e4eb009cb15066c20f233fd6f11c87511e Mon Sep 17 00:00:00 2001 From: Moritz <59416038+Morazzer@users.noreply.github.com> Date: Sat, 25 Jan 2025 18:57:09 +0100 Subject: add enchantment abbreviations as slot text (#1056) * add enchantment abbreviations as slot text * Refactor and clean up * Move verification to unit test * Refactor, now this is clean code --------- Co-authored-by: Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> --- .../slottext/adders/EnchantmentLevelAdderTest.java | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/test/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdderTest.java (limited to 'src/test/java') diff --git a/src/test/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdderTest.java b/src/test/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdderTest.java new file mode 100644 index 00000000..90d6191f --- /dev/null +++ b/src/test/java/de/hysky/skyblocker/skyblock/item/slottext/adders/EnchantmentLevelAdderTest.java @@ -0,0 +1,28 @@ +package de.hysky.skyblocker.skyblock.item.slottext.adders; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimaps; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.util.Map; + +public class EnchantmentLevelAdderTest { + @Test + void testEnchantmentAbbreviations() { + checkForDuplicates(EnchantmentLevelAdder.ENCHANTMENT_ABBREVIATIONS); + } + + @Test + void testUltimateEnchantmentAbbreviations() { + checkForDuplicates(EnchantmentLevelAdder.ULTIMATE_ENCHANTMENT_ABBREVIATIONS); + } + + private void checkForDuplicates(Map abbreviations) { + if (abbreviations.size() == abbreviations.values().stream().distinct().count()) return; + abbreviations.entrySet().stream().collect(Multimaps.toMultimap(Map.Entry::getValue, Map.Entry::getKey, ArrayListMultimap::create)) + .asMap().entrySet().stream().filter(e -> e.getValue().size() > 1) + .map(e -> "Duplicate abbreviations: %s for %s".formatted(e.getKey(), e.getValue())) + .forEach(Assertions::fail); + } +} -- cgit