Lortseam 4 rokov pred
rodič
commit
a0124f0264

+ 26 - 31
src/test/java/me/lortseam/completeconfig/ConfigTest.java

@@ -8,6 +8,7 @@ import me.lortseam.completeconfig.data.EntryBase;
 import me.lortseam.completeconfig.data.containers.*;
 import me.lortseam.completeconfig.data.groups.EmptyGroup;
 import me.lortseam.completeconfig.data.listeners.*;
+import me.lortseam.completeconfig.exception.IllegalAnnotationTargetException;
 import me.lortseam.completeconfig.io.ConfigSource;
 import nl.altindag.log.LogCaptor;
 import org.apache.logging.log4j.core.util.ReflectionUtil;
@@ -93,32 +94,38 @@ public class ConfigTest {
             public class Entry {
 
                 @Test
-                public void includeFieldInNonPOJOIfAnnotated() {
+                public void includeFieldIfAnnotated() {
                     Config config = builder.add(new ContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
                 }
 
                 @Test
-                public void excludeFieldInNonPOJOIfNotAnnotated() {
+                public void excludeFieldIfNotAnnotated() {
                     Config config = builder.add(new ContainerWithField()).build();
                     assertEquals(0, config.getEntries().size());
                 }
 
                 @Test
-                public void includeFieldInPOJO() {
-                    Config config = builder.add(new POJOContainerWithEntry()).build();
+                public void includeFieldInEntries() {
+                    Config config = builder.add(new EntriesContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
                 }
 
                 @Test
-                public void excludeFieldInPOJOIfContainer() {
-                    Config config = builder.add(new POJOContainerWithEmptyContainer()).build();
+                public void excludeFieldInEntriesIfContainer() {
+                    Config config = builder.add(new EntriesContainerWithEmptyContainer()).build();
                     assertEquals(0, config.getEntries().size());
                 }
 
                 @Test
-                public void excludeFieldInPOJOIfIgnoreAnnotated() {
-                    Config config = builder.add(new POJOContainerWithIgnoredField()).build();
+                public void excludeFieldInEntriesIfIgnoreAnnotated() {
+                    Config config = builder.add(new EntriesContainerWithIgnoredField()).build();
+                    assertEquals(0, config.getEntries().size());
+                }
+
+                @Test
+                public void excludeFieldInEntriesIfTransient() {
+                    Config config = builder.add(new EntriesContainerWithTransientField()).build();
                     assertEquals(0, config.getEntries().size());
                 }
 
@@ -140,23 +147,11 @@ public class ConfigTest {
             public class Container {
 
                 @Test
-                public void includeFieldInNonPOJOIfAnnotated() {
+                public void includeField() {
                     Config config = builder.add(new ContainerWithContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
                 }
 
-                @Test
-                public void excludeFieldInNonPOJOIfNotAnnotated() {
-                    Config config = builder.add(new ContainerWithNonAnnotatedContainerWithEntry()).build();
-                    assertEquals(0, config.getEntries().size());
-                }
-
-                @Test
-                public void includeFieldInPOJO() {
-                    Config config = builder.add(new POJOContainerWithContainerWithEntry()).build();
-                    assertEquals(1, config.getEntries().size());
-                }
-
                 @Test
                 public void includeSuperclassField() {
                     Config config = builder.add(new SubclassOfContainerWithContainerWithEntry()).build();
@@ -170,21 +165,21 @@ public class ConfigTest {
                 }
 
                 @Test
-                public void excludeNestedInPOJOIfNonStatic() {
-                    Config config = builder.add(new POJOContainerNestingContainerWithEntry()).build();
-                    assertEquals(0, config.getEntries().size());
+                public void includeNestedIfStatic() {
+                    Config config = builder.add(new ContainerNestingStaticContainerWithEntry()).build();
+                    assertEquals(1, config.getEntries().size());
                 }
 
                 @Test
-                public void includeNestedIfStaticAndPOJO() {
-                    Config config = builder.add(new POJOContainerNestingStaticContainerWithEntry()).build();
-                    assertEquals(1, config.getEntries().size());
+                public void throwIfNestedNonContainer() {
+                    IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> builder.add(new ContainerNestingStaticClass()).build());
+                    assertEquals("Transitive " + ContainerNestingStaticClass.Class.class + " must implement " + ConfigContainer.class.getSimpleName(), exception.getMessage());
                 }
 
                 @Test
-                public void excludeStaticNestedIfNonPOJO() {
-                    Config config = builder.add(new ContainerNestingStaticContainerWithEntry()).build();
-                    assertEquals(0, config.getEntries().size());
+                public void throwIfNestedNonStatic() {
+                    IllegalAnnotationTargetException exception = assertThrows(IllegalAnnotationTargetException.class, () -> builder.add(new ContainerNestingContainerWithEntry()).build());
+                    assertEquals("Transitive " + ContainerNestingContainerWithEntry.ContainerWithEntry.class + " must be static", exception.getMessage());
                 }
 
             }
@@ -244,7 +239,7 @@ public class ConfigTest {
                 }
 
                 @Test
-                public void forceUpdate() {
+                public void updateFieldIfForceUpdate() {
                     ForceUpdateListener listener = new ForceUpdateListener();
                     Config config = builder.add(listener).build();
                     boolean value = !listener.getValue();

+ 4 - 2
src/test/java/me/lortseam/completeconfig/data/containers/ContainerIncludingGroupWithEntry.java

@@ -5,7 +5,9 @@ import me.lortseam.completeconfig.data.groups.GroupWithEntry;
 
 public class ContainerIncludingGroupWithEntry implements ConfigContainer {
 
-    @Transitive
-    private final GroupWithEntry group = new GroupWithEntry();
+    @Override
+    public ConfigContainer[] getTransitives() {
+        return new ConfigContainer[]{new GroupWithEntry()};
+    }
 
 }

+ 2 - 6
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerNestingContainerWithEntry.java → src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingContainerWithEntry.java

@@ -3,13 +3,9 @@ package me.lortseam.completeconfig.data.containers;
 import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigContainer;
 
-public class POJOContainerNestingContainerWithEntry implements ConfigContainer {
-
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
+public class ContainerNestingContainerWithEntry implements ConfigContainer {
 
+    @Transitive
     public class ContainerWithEntry implements ConfigContainer {
 
         @ConfigEntry

+ 12 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticClass.java

@@ -0,0 +1,12 @@
+package me.lortseam.completeconfig.data.containers;
+
+import me.lortseam.completeconfig.api.ConfigContainer;
+
+public class ContainerNestingStaticClass implements ConfigContainer {
+
+    @Transitive
+    public static class Class {
+
+    }
+
+}

+ 1 - 0
src/test/java/me/lortseam/completeconfig/data/containers/ContainerNestingStaticContainerWithEntry.java

@@ -5,6 +5,7 @@ import me.lortseam.completeconfig.api.ConfigContainer;
 
 public class ContainerNestingStaticContainerWithEntry implements ConfigContainer {
 
+    @Transitive
     public static class ContainerWithEntry implements ConfigContainer {
 
         @ConfigEntry

+ 11 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEmptyContainer.java

@@ -0,0 +1,11 @@
+package me.lortseam.completeconfig.data.containers;
+
+import me.lortseam.completeconfig.api.ConfigContainer;
+import me.lortseam.completeconfig.api.ConfigEntries;
+
+@ConfigEntries
+public class EntriesContainerWithEmptyContainer implements ConfigContainer {
+
+    private final EmptyContainer emptyContainer = new EmptyContainer();
+
+}

+ 11 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithEntry.java

@@ -0,0 +1,11 @@
+package me.lortseam.completeconfig.data.containers;
+
+import me.lortseam.completeconfig.api.ConfigContainer;
+import me.lortseam.completeconfig.api.ConfigEntries;
+
+@ConfigEntries
+public class EntriesContainerWithEntry implements ConfigContainer {
+
+    private boolean entry;
+
+}

+ 3 - 6
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerWithIgnoredField.java → src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithIgnoredField.java

@@ -1,15 +1,12 @@
 package me.lortseam.completeconfig.data.containers;
 
 import me.lortseam.completeconfig.api.ConfigContainer;
+import me.lortseam.completeconfig.api.ConfigEntries;
 
-public class POJOContainerWithIgnoredField implements ConfigContainer {
+@ConfigEntries
+public class EntriesContainerWithIgnoredField implements ConfigContainer {
 
     @Ignore
     private boolean noEntry;
 
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
-
 }

+ 11 - 0
src/test/java/me/lortseam/completeconfig/data/containers/EntriesContainerWithTransientField.java

@@ -0,0 +1,11 @@
+package me.lortseam.completeconfig.data.containers;
+
+import me.lortseam.completeconfig.api.ConfigContainer;
+import me.lortseam.completeconfig.api.ConfigEntries;
+
+@ConfigEntries
+public class EntriesContainerWithTransientField implements ConfigContainer {
+
+    private transient boolean noEntry;
+
+}

+ 0 - 20
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerNestingStaticContainerWithEntry.java

@@ -1,20 +0,0 @@
-package me.lortseam.completeconfig.data.containers;
-
-import me.lortseam.completeconfig.api.ConfigEntry;
-import me.lortseam.completeconfig.api.ConfigContainer;
-
-public class POJOContainerNestingStaticContainerWithEntry implements ConfigContainer {
-
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
-
-    public static class ContainerWithEntry implements ConfigContainer {
-
-        @ConfigEntry
-        private boolean entry;
-
-    }
-
-}

+ 0 - 14
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerWithContainerWithEntry.java

@@ -1,14 +0,0 @@
-package me.lortseam.completeconfig.data.containers;
-
-import me.lortseam.completeconfig.api.ConfigContainer;
-
-public class POJOContainerWithContainerWithEntry implements ConfigContainer {
-
-    private final ContainerWithEntry container = new ContainerWithEntry();
-
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
-
-}

+ 0 - 14
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerWithEmptyContainer.java

@@ -1,14 +0,0 @@
-package me.lortseam.completeconfig.data.containers;
-
-import me.lortseam.completeconfig.api.ConfigContainer;
-
-public class POJOContainerWithEmptyContainer implements ConfigContainer {
-
-    private EmptyContainer container = new EmptyContainer();
-
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
-
-}

+ 0 - 14
src/test/java/me/lortseam/completeconfig/data/containers/POJOContainerWithEntry.java

@@ -1,14 +0,0 @@
-package me.lortseam.completeconfig.data.containers;
-
-import me.lortseam.completeconfig.api.ConfigContainer;
-
-public class POJOContainerWithEntry implements ConfigContainer {
-
-    private boolean entry;
-
-    @Override
-    public boolean isConfigObject() {
-        return true;
-    }
-
-}