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

65 lines
1.8 KiB
Java

package dev.peerat.parser.java.element;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
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.Class;
import dev.peerat.parser.java.ClassBase;
import dev.peerat.parser.java.Enumeration;
import dev.peerat.parser.java.Interface;
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<Supplier<String>> texts = new ArrayList<>();
private List<Consumer<JavaFile>> checkers = new ArrayList<>();
public void register(Supplier<String> text, Consumer<JavaFile> checker){
this.texts.add(text);
this.checkers.add(checker);
this.size++;
}
@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);
}
System.out.println("passed "+size+" tests");
}
public Class checkClass(JavaFile javafile){
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Class);
return (Class)clazzb;
}
public Interface checkInterface(JavaFile javafile){
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Interface);
return (Interface)clazzb;
}
public Enumeration checkEnum(JavaFile javafile){
ClassBase clazzb = javafile.getMainClass();
assertNotNull(clazzb);
assertTrue(clazzb instanceof Enumeration);
return (Enumeration)clazzb;
}
}