EntryTest.java 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. package me.lortseam.completeconfig.data;
  2. import me.lortseam.completeconfig.api.ConfigContainer;
  3. import me.lortseam.completeconfig.api.ConfigEntry;
  4. import me.lortseam.completeconfig.data.text.TranslationIdentifier;
  5. import net.minecraft.text.TextColor;
  6. import org.junit.jupiter.api.Test;
  7. import static org.junit.jupiter.api.Assertions.assertTrue;
  8. import static org.mockito.Mockito.mock;
  9. public class EntryTest implements ConfigContainer {
  10. private boolean booleanWithoutAnnotation;
  11. @ConfigEntry.Boolean
  12. private boolean booleanWithAnnotation;
  13. @ConfigEntry.BoundedInteger
  14. private int boundedInt;
  15. @ConfigEntry.BoundedInteger
  16. @ConfigEntry.Slider
  17. private int sliderInt;
  18. @ConfigEntry.BoundedLong
  19. private long boundedLong;
  20. @ConfigEntry.BoundedLong
  21. @ConfigEntry.Slider
  22. private long sliderLong;
  23. @ConfigEntry.BoundedFloat
  24. private float boundedFloat;
  25. @ConfigEntry.BoundedDouble
  26. private double boundedDouble;
  27. private AnEnum anEnum = AnEnum.FOO;
  28. @ConfigEntry.Dropdown
  29. private AnEnum dropdown = AnEnum.FOO;
  30. @ConfigEntry.Color(alphaMode = true)
  31. private int color;
  32. private TextColor textColor = TextColor.fromRgb(0);
  33. private <E extends Entry<?>> void assertTransformation(String fieldName, Class<E> entryType) {
  34. try {
  35. assertTrue(entryType.isInstance(Entry.of(getClass().getDeclaredField((fieldName)), this, mock(TranslationIdentifier.class))));
  36. } catch (NoSuchFieldException e) {
  37. throw new RuntimeException(e);
  38. }
  39. }
  40. @Test
  41. public void of_transformDefaults() {
  42. assertTransformation("booleanWithoutAnnotation", BooleanEntry.class);
  43. assertTransformation("booleanWithAnnotation", BooleanEntry.class);
  44. assertTransformation("boundedInt", BoundedEntry.class);
  45. assertTransformation("sliderInt", SliderEntry.class);
  46. assertTransformation("boundedLong", BoundedEntry.class);
  47. assertTransformation("sliderLong", SliderEntry.class);
  48. assertTransformation("boundedFloat", BoundedEntry.class);
  49. assertTransformation("boundedDouble", BoundedEntry.class);
  50. assertTransformation("anEnum", EnumEntry.class);
  51. assertTransformation("dropdown", DropdownEntry.class);
  52. assertTransformation("color", ColorEntry.class);
  53. assertTransformation("textColor", ColorEntry.class);
  54. }
  55. private enum AnEnum {
  56. FOO
  57. }
  58. }