[Complete Tests] Supplier<String> -> String in BaseElementTests & Normal Functions

This commit is contained in:
jeffcheasey88 2024-02-07 11:15:26 +01:00
parent 258eef2076
commit 1b20de6eae
19 changed files with 290 additions and 181 deletions

View file

@ -24,10 +24,10 @@ import dev.peerat.parser.java.Variable;
public class BaseElementTests{
private int size;
private List<Supplier<String>> texts = new ArrayList<>();
private List<String> texts = new ArrayList<>();
private List<Consumer<JavaFile>> checkers = new ArrayList<>();
public void register(Supplier<String> text, Consumer<JavaFile> checker){
public void register(String text, Consumer<JavaFile> checker){
this.texts.add(text);
this.checkers.add(checker);
this.size++;
@ -40,11 +40,11 @@ public class BaseElementTests{
Parser<JavaElement> parser = new JavaParser();
for(int i = 0; i < size; i++){
JavaFile javaFile = new JavaFile();
parser.parse((text = texts.get(i).get()), javaFile);
parser.parse((text = texts.get(i)), javaFile);
checkers.get(i).accept(javaFile);
}
System.out.println("["+getClass().getSimpleName()+"] passed "+size+" tests");
}catch(Exception e){
}catch(Exception|AssertionError e){
System.err.println("["+getClass().getSimpleName()+"] failed "+text+" for cause "+e.getMessage());
}
}

View file

@ -18,6 +18,7 @@ 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.NormalFunction;
import dev.peerat.parser.java.element.function.StaticFunction;
import dev.peerat.parser.java.element.variable.VariableInClass;
import dev.peerat.parser.java.element.variable.VariableInMethod;
@ -39,6 +40,7 @@ public class CITests{
new InterfaceWithoutMod(),
new ConstructorFunction(),
new StaticFunction(),
new NormalFunction(),
new VariableInClass(),
new VariableInMethod()
);

View file

@ -22,7 +22,7 @@ public class ClazzAnnotation extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test "
+ "public static class Test{}",
@ -37,7 +37,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@be.jeffcheasey88.Test "
+ "public static class Test{}",
@ -52,7 +52,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test() "
+ "public static class Test{}",
@ -67,7 +67,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test(\"Hello\") "
+ "public static class Test{}",
@ -88,7 +88,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test(offset=8) "
+ "public static class Test{}",
@ -107,7 +107,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test(offset=8,concat=\",\") "
+ "public static class Test{}",
@ -123,7 +123,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test "
+ "public static interface Test{}",
@ -141,7 +141,7 @@ public class ClazzAnnotation extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "@Test "
+ "public static enum Test{}",

View file

@ -14,7 +14,7 @@ public class ClazzWithExtend extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public class Test extends MyTest{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class ClazzWithExtendsAndImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public class Test extends MyBigTest implements MyTest{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class ClazzWithImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public class Test implements MyTest{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class ClazzWithMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class ClazzWithoutMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "class Test{}",
(javafile) -> {

View file

@ -13,7 +13,7 @@ public class EnumWithImplements extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public enum Test implements MyTest{}",
(javafile) -> {

View file

@ -13,7 +13,7 @@ public class EnumWithMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final enum Test{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class EnumWithoutMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "enum Test{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class InterfaceWithExtends extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public interface Test extends MyTest{}",
(javafile) -> {

View file

@ -13,7 +13,7 @@ public class InterfaceWithMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final interface Test{}",
(javafile) -> {

View file

@ -12,7 +12,7 @@ public class InterfaceWithoutMod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "interface Test{}",
(javafile) -> {

View file

@ -17,7 +17,7 @@ public class ConstructorFunction extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " Test(){}"
@ -35,7 +35,7 @@ public class ConstructorFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(){}"
@ -53,7 +53,7 @@ public class ConstructorFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private Test(){}"
@ -71,7 +71,7 @@ public class ConstructorFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i){}"
@ -93,7 +93,7 @@ public class ConstructorFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i, int j){}"
@ -119,7 +119,7 @@ public class ConstructorFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public Test(int i, int j) throws Exception{}"

View file

@ -0,0 +1,107 @@
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 NormalFunction extends BaseElementTests{
{
register(
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertEquals("test", function.getName().getValue());
assertEquals("void", function.getReturnType().getValue());
assertEquals(0, function.getElements().size());
assertEquals(0, function.getModifier());
assertNull(function.getParameters());
});
register(
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public void test(){}"
+ "}",
(javafile) -> {
Class clazz = checkClass(javafile);
List<JavaElement> elements = clazz.getElements();
assertNotNull(elements);
assertEquals(1, elements.size());
Function function = checkFunction(elements.get(0));
assertEquals("test", function.getName().getValue());
assertEquals("void", function.getReturnType().getValue());
assertEquals(0, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertNull(function.getParameters());
});
register(
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public void 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));
assertEquals("test", function.getName().getValue());
assertEquals("void", function.getReturnType().getValue());
assertEquals(1, function.getElements().size());
assertEquals(Modifier.PUBLIC, function.getModifier());
assertNull(function.getParameters());
});
register(
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " public void 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));
assertEquals("test", function.getName().getValue());
assertEquals("void", function.getReturnType().getValue());
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

@ -16,7 +16,7 @@ public class StaticFunction extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " static{}"
@ -33,7 +33,7 @@ public class StaticFunction extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " static{ int i; }"

View file

@ -17,7 +17,7 @@ public class VariableInClass extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " int i;"
@ -38,7 +38,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private int i;"
@ -59,7 +59,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private final int i;"
@ -80,7 +80,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private final int i = 4;"
@ -101,7 +101,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private final int i = 4, j;"
@ -131,7 +131,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private final int i = 4, j = 6;"
@ -161,7 +161,7 @@ public class VariableInClass extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " private final int i = 4, j = 6;"

View file

@ -16,7 +16,7 @@ public class VariableInMethod extends BaseElementTests{
{
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){"
@ -40,7 +40,7 @@ public class VariableInMethod extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){"
@ -64,7 +64,7 @@ public class VariableInMethod extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){"
@ -94,7 +94,7 @@ public class VariableInMethod extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){"
@ -124,7 +124,7 @@ public class VariableInMethod extends BaseElementTests{
});
register(
() -> "package be.jeffcheasey88;"
"package be.jeffcheasey88;"
+ ""
+ "public static final class Test{ "
+ " void test(){"