diff --git a/test/dev/peerat/parser/java/element/BaseElementTests.java b/test/dev/peerat/parser/java/element/BaseElementTests.java new file mode 100644 index 0000000..6a8bcca --- /dev/null +++ b/test/dev/peerat/parser/java/element/BaseElementTests.java @@ -0,0 +1,38 @@ +package dev.peerat.parser.java.element; + +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; +import java.util.function.Supplier; + +import org.junit.jupiter.api.Test; + +import dev.peerat.parser.Parser; +import dev.peerat.parser.java.JavaElement; +import dev.peerat.parser.java.JavaFile; +import dev.peerat.parser.java.JavaParser; + +public class BaseElementTests{ + + private int size; + private List> texts = new ArrayList<>(); + private List> checkers = new ArrayList<>(); + + public void register(Supplier text, Consumer checker){ + this.texts.add(text); + this.checkers.add(checker); + this.size++; + } + + @Test + void main() throws Exception{ + Parser 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); + } + System.out.println("passed "+size+" tests"); + } + +} diff --git a/test/dev/peerat/parser/java/element/clazz/ClazzWithMod.java b/test/dev/peerat/parser/java/element/clazz/ClazzWithMod.java new file mode 100644 index 0000000..fd1fa61 --- /dev/null +++ b/test/dev/peerat/parser/java/element/clazz/ClazzWithMod.java @@ -0,0 +1,28 @@ +package dev.peerat.parser.java.element.clazz; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import dev.peerat.parser.java.Class; +import dev.peerat.parser.java.ClassBase; +import dev.peerat.parser.java.element.BaseElementTests; + +public class ClazzWithMod extends BaseElementTests{ + + { + register( + () -> "package be.jeffcheasey88;" + + "" + + "public static final class Test{}", + (javafile) -> { + ClassBase clazzb = javafile.getMainClass(); + assertNotNull(clazzb); + assertTrue(clazzb instanceof Class); + Class clazz = (Class)clazzb; + assertEquals("Test", clazz.getName().getValue()); + assertEquals(0, clazz.getElements().size()); + }); + } + +} diff --git a/test/dev/peerat/parser/java/element/clazz/ClazzWithoutMod.java b/test/dev/peerat/parser/java/element/clazz/ClazzWithoutMod.java new file mode 100644 index 0000000..fa4795c --- /dev/null +++ b/test/dev/peerat/parser/java/element/clazz/ClazzWithoutMod.java @@ -0,0 +1,28 @@ +package dev.peerat.parser.java.element.clazz; + +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import dev.peerat.parser.java.Class; +import dev.peerat.parser.java.ClassBase; +import dev.peerat.parser.java.element.BaseElementTests; + +public class ClazzWithoutMod extends BaseElementTests{ + + { + register( + () -> "package be.jeffcheasey88;" + + "" + + "class Test{}", + (javafile) -> { + ClassBase clazzb = javafile.getMainClass(); + assertNotNull(clazzb); + assertTrue(clazzb instanceof Class); + Class clazz = (Class)clazzb; + assertEquals("Test", clazz.getName().getValue()); + assertEquals(0, clazz.getElements().size()); + }); + } + +}