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.Function; import dev.peerat.parser.java.Interface; import dev.peerat.parser.java.JavaElement; import dev.peerat.parser.java.JavaFile; import dev.peerat.parser.java.JavaParser; import dev.peerat.parser.java.Variable; public class BaseElementTests{ private int size; private List texts = new ArrayList<>(); private List> checkers = new ArrayList<>(); public void register(String text, Consumer checker){ this.texts.add(text); this.checkers.add(checker); this.size++; } @Test void main(){ String text = null; try{ Parser parser = new JavaParser(); for(int i = 0; i < size; i++){ JavaFile javaFile = new JavaFile(); parser.parse((text = texts.get(i)), javaFile); checkers.get(i).accept(javaFile); } System.out.println("["+getClass().getSimpleName()+"] passed "+size+" tests"); }catch(Exception|AssertionError e){ System.err.println("["+getClass().getSimpleName()+"] failed "+text+" for cause "+e.getMessage()); } } 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; } public Function checkFunction(JavaElement element){ assertNotNull(element); assertTrue(element instanceof Function); return (Function)element; } public Variable checkVariable(JavaElement element){ assertNotNull(element); assertTrue(element instanceof Variable); return (Variable)element; } }