From b9de712dcfb935861059cb92a60c0d698cd302d4 Mon Sep 17 00:00:00 2001 From: Glease <4586901+Glease@users.noreply.github.com> Date: Mon, 14 Mar 2022 14:22:00 +0800 Subject: pin comb type id instead of depending on array ordinal (#980) * pin comb type id instead of depending on array ordinal * fix up _NULL related problems * fix out of bound * make it private * add some more test --- .../java/gregtech/common/items/CombTypeTest.java | 43 ++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/test/java/gregtech/common/items/CombTypeTest.java (limited to 'src/test/java/gregtech') diff --git a/src/test/java/gregtech/common/items/CombTypeTest.java b/src/test/java/gregtech/common/items/CombTypeTest.java new file mode 100644 index 0000000000..0f55d0afd1 --- /dev/null +++ b/src/test/java/gregtech/common/items/CombTypeTest.java @@ -0,0 +1,43 @@ +package gregtech.common.items; + +import org.junit.jupiter.api.Test; + +import java.util.HashSet; +import java.util.Set; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class CombTypeTest { + @Test + void noDuplicateID() { + Set seen = new HashSet<>(); + for (CombType value : CombType.values()) { + assertTrue(seen.add(value.getId()), "Comb type must not have duplicate ID"); + } + } + + @Test + void noNegativeID() { + for (CombType value : CombType.values()) { + if (value == CombType._NULL) + assertTrue(value.getId() <= 0, "Comb type ID must be negative for _NULL"); + else + assertTrue(value.getId() >= 0, "Comb type ID must not be negative"); + } + } + + @Test + void invalidIDNotNull() { + assertEquals(CombType.valueOf(-2), CombType._NULL, "Invalid ID Lookup should result in _NULL"); + assertEquals(CombType.valueOf(Integer.MAX_VALUE), CombType._NULL, "Invalid ID Lookup should result in _NULL"); + } + + @Test + void validIDCorrectComb() { + for (CombType value : CombType.values()) { + if (value != CombType._NULL) + assertEquals(CombType.valueOf(value.getId()), value, "Valid ID Lookup should result in correct output"); + } + } +} -- cgit