Lortseam пре 4 година
родитељ
комит
170c7302c4
19 измењених фајлова са 190 додато и 23 уклоњено
  1. 71 8
      src/test/java/me/lortseam/completeconfig/ConfigTest.java
  2. 11 0
      src/test/java/me/lortseam/completeconfig/ContainerIncludingGroupWithEntry.java
  3. 12 0
      src/test/java/me/lortseam/completeconfig/containers/ContainerIncludingContainerWithEntry.java
  4. 10 0
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithContainerWithEntry.java
  5. 1 2
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithEntry.java
  6. 9 0
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithField.java
  7. 10 0
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithGroupWithEntry.java
  8. 9 0
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithNonAnnotatedContainerWithEntry.java
  9. 1 1
      src/test/java/me/lortseam/completeconfig/containers/ContainerWithStaticEntry.java
  10. 11 0
      src/test/java/me/lortseam/completeconfig/containers/GroupWithEntry.java
  11. 14 0
      src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithContainerWithEntry.java
  12. 14 0
      src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithEmptyContainer.java
  13. 1 1
      src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithEntry.java
  14. 1 1
      src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithIgnoredField.java
  15. 5 0
      src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithContainerWithEntry.java
  16. 5 0
      src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithEntry.java
  17. 0 5
      src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithSingleEntry.java
  18. 0 5
      src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithSingleStaticEntry.java
  19. 5 0
      src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithStaticEntry.java

+ 71 - 8
src/test/java/me/lortseam/completeconfig/ConfigTest.java

@@ -90,36 +90,99 @@ public class ConfigTest {
             public class Entry {
 
                 @Test
-                public void includeAnnotatedFieldOnlyIfNonPOJO() throws NoSuchFieldException {
-                    Config config = builder.add(new ContainerWithSingleEntry()).build();
+                public void includeAnnotatedFieldIfNonPOJO() {
+                    Config config = builder.add(new ContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
-                    assertEquals(config.getEntries().iterator().next().getField(), ContainerWithSingleEntry.class.getDeclaredField("entry"));
+                }
+
+                @Test
+                public void excludeNonAnnotatedFieldIfNonPOJO() {
+                    Config config = builder.add(new ContainerWithField()).build();
+                    assertEquals(0, config.getEntries().size());
                 }
 
                 @Test
                 public void includeFieldIfPOJO() {
-                    Config config = builder.add(new POJOContainerWithSingleEntry()).build();
+                    Config config = builder.add(new POJOContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
                 }
 
                 @Test
-                public void ignoreFieldIfAnnotatedWithIgnore() {
-                    Config config = builder.add(new POJOContainerWithSingleIgnoredField()).build();
+                public void excludeContainerFieldIfPOJO() {
+                    Config config = builder.add(new POJOContainerWithEmptyContainer()).build();
+                    assertEquals(0, config.getEntries().size());
+                }
+
+                @Test
+                public void ignoreFieldIfAnnotatedWithIgnoreAndPOJO() {
+                    Config config = builder.add(new POJOContainerWithIgnoredField()).build();
                     assertEquals(0, config.getEntries().size());
                 }
 
                 @Test
                 public void includeSuperclassField() {
-                    Config config = builder.add(new SubclassOfContainerWithSingleEntry()).build();
+                    Config config = builder.add(new SubclassOfContainerWithEntry()).build();
                     assertEquals(1, config.getEntries().size());
                 }
 
                 @Test
                 public void excludeStaticSuperclassField() {
-                    Config config = builder.add(new SubclassOfContainerWithSingleStaticEntry()).build();
+                    Config config = builder.add(new SubclassOfContainerWithStaticEntry()).build();
+                    assertEquals(0, config.getEntries().size());
+                }
+
+            }
+
+            @Nested
+            public class Container {
+
+                @Test
+                public void includeAnnotatedFieldIfNonPOJO() {
+                    Config config = builder.add(new ContainerWithContainerWithEntry()).build();
+                    assertEquals(1, config.getEntries().size());
+                }
+
+                @Test
+                public void excludeNonAnnotatedFieldIfNonPOJO() {
+                    Config config = builder.add(new ContainerWithNonAnnotatedContainerWithEntry()).build();
                     assertEquals(0, config.getEntries().size());
                 }
 
+                @Test
+                public void includeFieldIfPOJO() {
+                    Config config = builder.add(new POJOContainerWithContainerWithEntry()).build();
+                    assertEquals(1, config.getEntries().size());
+                }
+
+                @Test
+                public void includeSuperclassField() {
+                    Config config = builder.add(new SubclassOfContainerWithContainerWithEntry()).build();
+                    assertEquals(1, config.getEntries().size());
+                }
+
+                @Test
+                public void includeOfMethod() {
+                    Config config = builder.add(new ContainerIncludingContainerWithEntry()).build();
+                    assertEquals(1, config.getEntries().size());
+                }
+
+            }
+
+            @Nested
+            public class Group {
+
+                @Test
+                public void includeField() {
+                    Config config = builder.add(new ContainerWithGroupWithEntry()).build();
+                    assertEquals(1, config.getCollections().size());
+                }
+
+                @Test
+                public void includeOfMethod() {
+                    Config config = builder.add(new ContainerIncludingGroupWithEntry()).build();
+                    assertEquals(1, config.getCollections().size());
+                }
+
             }
 
         }

+ 11 - 0
src/test/java/me/lortseam/completeconfig/ContainerIncludingGroupWithEntry.java

@@ -0,0 +1,11 @@
+package me.lortseam.completeconfig;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.containers.GroupWithEntry;
+
+public class ContainerIncludingGroupWithEntry implements ConfigEntryContainer {
+
+    @Transitive
+    private final GroupWithEntry group = new GroupWithEntry();
+
+}

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

@@ -0,0 +1,12 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+
+public class ContainerIncludingContainerWithEntry implements ConfigEntryContainer {
+
+    @Override
+    public ConfigEntryContainer[] getTransitiveContainers() {
+        return new ConfigEntryContainer[]{new ContainerWithEntry()};
+    }
+
+}

+ 10 - 0
src/test/java/me/lortseam/completeconfig/containers/ContainerWithContainerWithEntry.java

@@ -0,0 +1,10 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+
+public class ContainerWithContainerWithEntry implements ConfigEntryContainer {
+
+    @Transitive
+    private final ContainerWithEntry container = new ContainerWithEntry();
+
+}

+ 1 - 2
src/test/java/me/lortseam/completeconfig/containers/ContainerWithSingleEntry.java → src/test/java/me/lortseam/completeconfig/containers/ContainerWithEntry.java

@@ -3,10 +3,9 @@ package me.lortseam.completeconfig.containers;
 import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigEntryContainer;
 
-public class ContainerWithSingleEntry implements ConfigEntryContainer {
+public class ContainerWithEntry implements ConfigEntryContainer {
 
     @ConfigEntry
     private boolean entry;
-    private boolean noEntry;
 
 }

+ 9 - 0
src/test/java/me/lortseam/completeconfig/containers/ContainerWithField.java

@@ -0,0 +1,9 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+
+public class ContainerWithField implements ConfigEntryContainer {
+
+    private boolean noEntry;
+
+}

+ 10 - 0
src/test/java/me/lortseam/completeconfig/containers/ContainerWithGroupWithEntry.java

@@ -0,0 +1,10 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+
+public class ContainerWithGroupWithEntry implements ConfigEntryContainer {
+
+    @Transitive
+    private final GroupWithEntry group = new GroupWithEntry();
+
+}

+ 9 - 0
src/test/java/me/lortseam/completeconfig/containers/ContainerWithNonAnnotatedContainerWithEntry.java

@@ -0,0 +1,9 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+
+public class ContainerWithNonAnnotatedContainerWithEntry implements ConfigEntryContainer {
+
+    private final ContainerWithEntry nonAnnotatedContainer = new ContainerWithEntry();
+
+}

+ 1 - 1
src/test/java/me/lortseam/completeconfig/containers/ContainerWithSingleStaticEntry.java → src/test/java/me/lortseam/completeconfig/containers/ContainerWithStaticEntry.java

@@ -3,7 +3,7 @@ package me.lortseam.completeconfig.containers;
 import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigEntryContainer;
 
-public class ContainerWithSingleStaticEntry implements ConfigEntryContainer {
+public class ContainerWithStaticEntry implements ConfigEntryContainer {
 
     @ConfigEntry
     private static boolean entry;

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

@@ -0,0 +1,11 @@
+package me.lortseam.completeconfig.containers;
+
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigGroup;
+
+public class GroupWithEntry implements ConfigGroup {
+
+    @ConfigEntry
+    private boolean entry;
+
+}

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

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

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

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

+ 1 - 1
src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithSingleEntry.java → src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithEntry.java

@@ -2,7 +2,7 @@ package me.lortseam.completeconfig.containers;
 
 import me.lortseam.completeconfig.api.ConfigEntryContainer;
 
-public class POJOContainerWithSingleEntry implements ConfigEntryContainer {
+public class POJOContainerWithEntry implements ConfigEntryContainer {
 
     private boolean entry;
 

+ 1 - 1
src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithSingleIgnoredField.java → src/test/java/me/lortseam/completeconfig/containers/POJOContainerWithIgnoredField.java

@@ -3,7 +3,7 @@ package me.lortseam.completeconfig.containers;
 import me.lortseam.completeconfig.api.ConfigEntry;
 import me.lortseam.completeconfig.api.ConfigEntryContainer;
 
-public class POJOContainerWithSingleIgnoredField implements ConfigEntryContainer {
+public class POJOContainerWithIgnoredField implements ConfigEntryContainer {
 
     @ConfigEntry.Ignore
     private boolean noEntry;

+ 5 - 0
src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithContainerWithEntry.java

@@ -0,0 +1,5 @@
+package me.lortseam.completeconfig.containers;
+
+public class SubclassOfContainerWithContainerWithEntry extends ContainerWithContainerWithEntry {
+
+}

+ 5 - 0
src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithEntry.java

@@ -0,0 +1,5 @@
+package me.lortseam.completeconfig.containers;
+
+public class SubclassOfContainerWithEntry extends ContainerWithEntry {
+
+}

+ 0 - 5
src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithSingleEntry.java

@@ -1,5 +0,0 @@
-package me.lortseam.completeconfig.containers;
-
-public class SubclassOfContainerWithSingleEntry extends ContainerWithSingleEntry {
-
-}

+ 0 - 5
src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithSingleStaticEntry.java

@@ -1,5 +0,0 @@
-package me.lortseam.completeconfig.containers;
-
-public class SubclassOfContainerWithSingleStaticEntry extends ContainerWithSingleStaticEntry {
-
-}

+ 5 - 0
src/test/java/me/lortseam/completeconfig/containers/SubclassOfContainerWithStaticEntry.java

@@ -0,0 +1,5 @@
+package me.lortseam.completeconfig.containers;
+
+public class SubclassOfContainerWithStaticEntry extends ContainerWithStaticEntry {
+
+}