[Complete Tests] Static & Constructor function + CI implementation

This commit is contained in:
jeffcheasey88 2024-02-07 10:34:34 +01:00
parent a10bde566e
commit 258eef2076
8 changed files with 280 additions and 19 deletions

View file

@ -89,9 +89,9 @@ public class ClassTests{
return result;
}
@Test
void main() throws Exception{
JavaElement result = testCase("public static class Test extends MyTest<List<String>> implements Ahbon{}");
}
// @Test
// void main() throws Exception{
// JavaElement result = testCase("public static class Test extends MyTest<List<String>> implements Ahbon{}");
// }
}

View file

@ -149,9 +149,9 @@ public class FunctionTests {
return result;
}
@Test
void main() throws Exception{
JavaElement result = testCase("public static void main(String[] args){}");
}
// @Test
// void main() throws Exception{
// JavaElement result = testCase("public static void main(String[] args){}");
// }
}

View file

@ -427,10 +427,10 @@ public class OperationTests {
testCase("throw e;");
}
@Test
void tryOp() throws Exception{
testCase("try(Test test = new Test()){}");
}
// @Test
// void tryOp() throws Exception{
// testCase("try(Test test = new Test()){}");
// }
@Test
void whileOp() throws Exception{

View file

@ -34,14 +34,19 @@ public class BaseElementTests{
}
@Test
void main() throws Exception{
Parser<JavaElement> parser = new JavaParser();
for(int i = 0; i < size; i++){
JavaFile javaFile = new JavaFile();
parser.parse(texts.get(i).get(), javaFile);
checkers.get(i).accept(javaFile);
void main(){
String text = null;
try{
Parser<JavaElement> parser = new JavaParser();
for(int i = 0; i < size; i++){
JavaFile javaFile = new JavaFile();
parser.parse((text = texts.get(i).get()), javaFile);
checkers.get(i).accept(javaFile);
}
System.out.println("["+getClass().getSimpleName()+"] passed "+size+" tests");
}catch(Exception e){
System.err.println("["+getClass().getSimpleName()+"] failed "+text+" for cause "+e.getMessage());
}
System.out.println("passed "+size+" tests");
}
public Class checkClass(JavaFile javafile){

View file

@ -0,0 +1,51 @@
package dev.peerat.parser.java.element;
import java.util.Arrays;
import java.util.List;
import org.junit.jupiter.api.Test;
import dev.peerat.parser.java.element.annotation.ClazzAnnotation;
import dev.peerat.parser.java.element.clazz.ClazzWithExtend;
import dev.peerat.parser.java.element.clazz.ClazzWithExtendsAndImplements;
import dev.peerat.parser.java.element.clazz.ClazzWithImplements;
import dev.peerat.parser.java.element.clazz.ClazzWithMod;
import dev.peerat.parser.java.element.clazz.ClazzWithoutMod;
import dev.peerat.parser.java.element.clazz.EnumWithImplements;
import dev.peerat.parser.java.element.clazz.EnumWithMod;
import dev.peerat.parser.java.element.clazz.EnumWithoutMod;
import dev.peerat.parser.java.element.clazz.InterfaceWithExtends;
import dev.peerat.parser.java.element.clazz.InterfaceWithMod;
import dev.peerat.parser.java.element.clazz.InterfaceWithoutMod;
import dev.peerat.parser.java.element.function.ConstructorFunction;
import dev.peerat.parser.java.element.function.StaticFunction;
import dev.peerat.parser.java.element.variable.VariableInClass;
import dev.peerat.parser.java.element.variable.VariableInMethod;
public class CITests{
List<BaseElementTests> TESTS = Arrays.asList(
new ClazzAnnotation(),
new ClazzWithExtend(),
new ClazzWithExtendsAndImplements(),
new ClazzWithImplements(),
new ClazzWithMod(),
new ClazzWithoutMod(),
new EnumWithImplements(),
new EnumWithMod(),
new EnumWithoutMod(),
new InterfaceWithExtends(),
new InterfaceWithMod(),
new InterfaceWithoutMod(),
new ConstructorFunction(),
new StaticFunction(),
new VariableInClass(),
new VariableInMethod()
);
@Test
void main(){
for(BaseElementTests test : TESTS) test.main();
}
}

View file

@ -4,6 +4,8 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.element.BaseElementTests;

View file

@ -0,0 +1,150 @@
package dev.peerat.parser.java.element.function;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.lang.reflect.Modifier;
import java.util.List;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.Function;
import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.java.Variable;
import dev.peerat.parser.java.element.BaseElementTests;
public class ConstructorFunction extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " Test(){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(0, function.getModifier());
assertNull(function.getParameters());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertNull(function.getParameters());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private Test(){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PRIVATE, function.getModifier());
assertNull(function.getParameters());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertEquals(1, function.getParameters().size());
Variable param1 = checkVariable(function.getParameters().get(0));
assertEquals("i", param1.getName().getValue());
assertEquals("int", param1.getType().getValue());
assertNull(param1.getValue());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i, int j){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertEquals(2, function.getParameters().size());
Variable param1 = checkVariable(function.getParameters().get(0));
Variable param2 = checkVariable(function.getParameters().get(1));
assertEquals("i", param1.getName().getValue());
assertEquals("int", param1.getType().getValue());
assertNull(param1.getValue());
assertEquals("j", param2.getName().getValue());
assertEquals("int", param2.getType().getValue());
assertNull(param2.getValue());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i, int j) throws Exception{}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNotNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertEquals(2, function.getParameters().size());
Variable param1 = checkVariable(function.getParameters().get(0));
Variable param2 = checkVariable(function.getParameters().get(1));
assertEquals("i", param1.getName().getValue());
assertEquals("int", param1.getType().getValue());
assertNull(param1.getValue());
assertEquals("j", param2.getName().getValue());
assertEquals("int", param2.getType().getValue());
assertNull(param2.getValue());
assertNotNull(function.getThrowables());
assertEquals("Exception", function.getThrowables().get(0).getValue());
});
}
}

View file

@ -0,0 +1,53 @@
package dev.peerat.parser.java.element.function;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.lang.reflect.Modifier;
import java.util.List;
import dev.peerat.parser.java.Class;
import dev.peerat.parser.java.Function;
import dev.peerat.parser.java.JavaElement;
import dev.peerat.parser.java.element.BaseElementTests;
public class StaticFunction extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " static{}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNull(function.getName());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.STATIC, function.getModifier());
});
register(
() -> "package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " static{ int i; }"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertNull(function.getName());
assertEquals(1, function.getElements().size());
assertEquals(Modifier.STATIC, function.getModifier());
checkVariable(function.getElements().get(0));
});
}
}