peer-at-code-parser-java/test/dev/peerat/parser/java/element/function/NormalFunction.java

133 lines
4.7 KiB
Java

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