package de.is24.javaparser; import de.is24.deadcode4j.junit.AUtilityClass; import de.is24.deadcode4j.junit.FileLoader; import com.github.javaparser.JavaParser; import com.github.javaparser.ParseException; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.expr.NameExpr; import com.github.javaparser.ast.expr.QualifiedNameExpr; import com.github.javaparser.ast.expr.StringLiteralExpr; import com.github.javaparser.ast.visitor.VoidVisitorAdapter; import org.junit.Test; import java.io.IOException; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; public final class A_Nodes extends AUtilityClass { @Test public void prependsNothingForEmptyStringBuilder() { StringBuilder buffy = Nodes.prependSeparatorIfNecessary('.', new StringBuilder()); assertThat(buffy.toString(), is("")); } @Test public void prependsSeparator() { StringBuilder buffy = Nodes.prependSeparatorIfNecessary('.', new StringBuilder("foo")); assertThat(buffy.toString(), is(".foo")); } @Test public void prependsNameExpression() { StringBuilder buffy = Nodes.prepend(new NameExpr("foo"), new StringBuilder("Bar")); assertThat(buffy.toString(), is("foo.Bar")); } @Test public void prependsQualifiedNameExpression() { QualifiedNameExpr qualifiedNameExpr = new QualifiedNameExpr(new QualifiedNameExpr(new NameExpr("de"), "is24"), "foo"); StringBuilder buffy = Nodes.prepend(qualifiedNameExpr, new StringBuilder("Bar")); assertThat(buffy.toString(), is("de.is24.foo.Bar")); } @Test public void calculatesTypeNames() throws IOException, ParseException { CompilationUnit compilationUnit = JavaParser.parse( FileLoader.getFile("de/is24/javaparser/TypeNameTestClass.java")); compilationUnit.accept(new VoidVisitorAdapter<Void>() { @Override public void visit(StringLiteralExpr n, Void arg) { assertThat("Name of anonymous class is invalid!", Nodes.getTypeName(n), is(n.getValue())); } }, null); } @Override protected Class<?> getType() { return Nodes.class; } }