浏览代码

Add listener tests

Lortseam 4 年之前
父节点
当前提交
bfd28ac496

+ 21 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/CustomListener.java

@@ -0,0 +1,21 @@
+package me.lortseam.completeconfig.data.listeners;
+
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.api.ConfigEntryListener;
+
+public class CustomListener implements ConfigEntryContainer {
+
+    @ConfigEntry
+    private boolean value;
+
+    @ConfigEntryListener("value")
+    public void update(boolean value) {
+        this.value = value;
+    }
+
+    public boolean getValue() {
+        return value;
+    }
+
+}

+ 19 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/EmptyListener.java

@@ -0,0 +1,19 @@
+package me.lortseam.completeconfig.data.listeners;
+
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.api.ConfigEntryListener;
+
+public class EmptyListener implements ConfigEntryContainer {
+
+    @ConfigEntry
+    private boolean value;
+
+    @ConfigEntryListener("value")
+    public void onUpdate(boolean value) {}
+
+    public boolean getValue() {
+        return value;
+    }
+
+}

+ 19 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/ForceUpdateListener.java

@@ -0,0 +1,19 @@
+package me.lortseam.completeconfig.data.listeners;
+
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.api.ConfigEntryListener;
+
+public class ForceUpdateListener implements ConfigEntryContainer {
+
+    @ConfigEntry(forceUpdate = true)
+    private boolean value;
+
+    @ConfigEntryListener("value")
+    public void onUpdate(boolean value) {}
+
+    public boolean getValue() {
+        return value;
+    }
+
+}

+ 22 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/OutsideListener.java

@@ -0,0 +1,22 @@
+package me.lortseam.completeconfig.data.listeners;
+
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.api.ConfigEntryListener;
+import me.lortseam.completeconfig.data.containers.ContainerWithEntry;
+
+public class OutsideListener implements ConfigEntryContainer {
+
+    @Transitive
+    private final ContainerWithEntry container = new ContainerWithEntry();
+    private boolean value = container.getValue();
+
+    @ConfigEntryListener(container = ContainerWithEntry.class, value = "entry")
+    public void onUpdateValue(boolean value) {
+        this.value = value;
+    }
+
+    public boolean getValue() {
+        return value;
+    }
+
+}

+ 21 - 0
src/test/java/me/lortseam/completeconfig/data/listeners/SetterListener.java

@@ -0,0 +1,21 @@
+package me.lortseam.completeconfig.data.listeners;
+
+import me.lortseam.completeconfig.api.ConfigEntry;
+import me.lortseam.completeconfig.api.ConfigEntryContainer;
+import me.lortseam.completeconfig.api.ConfigEntryListener;
+
+public class SetterListener implements ConfigEntryContainer {
+
+    @ConfigEntry
+    private boolean value;
+
+    @ConfigEntryListener
+    public void setValue(boolean value) {
+        this.value = value;
+    }
+
+    public boolean getValue() {
+        return value;
+    }
+
+}