added ConfigProcessor
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
package dev.asdf00.confindibus;
|
||||
|
||||
import dev.asdf00.confindibus.testclasses.*;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import static com.sun.tools.javac.Main.compile;
|
||||
|
||||
public class ProcessorTest {
|
||||
@Test
|
||||
public void testSimpleConfig() {
|
||||
Assert.assertEquals(0, compileWithProc(SimpleTestConfig.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenConfig() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenConfig.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenSection1() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenSection1.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenSection2() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenSection2.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenValue1() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenValue1.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenValue2() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenValue2.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenValue3() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenValue3.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenValue4() {
|
||||
Assert.assertEquals(1, compileWithProc(BrokenValue4.class));
|
||||
}
|
||||
|
||||
|
||||
// =================================================================================================================
|
||||
private int compileWithProc(Class<?>... classes) {
|
||||
int fixedArgCnt = 3;
|
||||
String[] args = new String[classes.length + fixedArgCnt];
|
||||
args[0] = "-proc:only";
|
||||
args[1] = "-processor";
|
||||
args[2] = "dev.asdf00.confindibus.processor.ConfigProcessor";
|
||||
for (int i = fixedArgCnt; i < args.length; i++) {
|
||||
args[i] = testClass(classes[i - fixedArgCnt]);
|
||||
}
|
||||
return compile(args);
|
||||
}
|
||||
|
||||
private String testClass(Class cls) {
|
||||
return "test/" + cls.getName().replace('.', '/') + ".java";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
public class BrokenConfig {
|
||||
@Value(standard = "value")
|
||||
public static String VALUE;
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Section(title = "test")
|
||||
public class BrokenSection1 {
|
||||
@Value(standard = "value")
|
||||
public static String VALUE;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect")
|
||||
public class BrokenSection2 {
|
||||
@Section(title = "broken subsect")
|
||||
public class Subsect { }
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect")
|
||||
public class BrokenValue1 {
|
||||
@Value(standard = "test")
|
||||
public String TEST;
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect outer")
|
||||
public class BrokenValue2 {
|
||||
public static class InnerSection {
|
||||
@Value(standard = "value")
|
||||
public static String VALUE;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect")
|
||||
public class BrokenValue3 {
|
||||
@Value(standard = "")
|
||||
public static Object VALUE;
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect")
|
||||
public class BrokenValue4 {
|
||||
@Value(standard = "256")
|
||||
public static byte VALUE;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package dev.asdf00.confindibus.testclasses;
|
||||
|
||||
import dev.asdf00.confindibus.annotations.Configuration;
|
||||
import dev.asdf00.confindibus.annotations.Section;
|
||||
import dev.asdf00.confindibus.annotations.Value;
|
||||
|
||||
@Configuration(path = "test")
|
||||
@Section(title = "sect")
|
||||
public class SimpleTestConfig {
|
||||
@Value(standard = "1")
|
||||
public static byte BYTE;
|
||||
@Value(standard = "1")
|
||||
public static short SHORT;
|
||||
@Value(standard = "1")
|
||||
public static int INT;
|
||||
@Value(standard = "1")
|
||||
public static long LONG;
|
||||
@Value(standard = "1.0")
|
||||
public static float FLOAT;
|
||||
@Value(standard = "1.0")
|
||||
public static double DOUBLE;
|
||||
@Value(standard = "true")
|
||||
public static boolean BOOLEAN;
|
||||
@Value(standard = "c")
|
||||
public static char CHAR;
|
||||
@Value(standard = "string")
|
||||
public static String STRING;
|
||||
|
||||
@Section(title = "test inner section")
|
||||
public static class SubSection { }
|
||||
}
|
||||
Reference in New Issue
Block a user