diff options
Diffstat (limited to 'javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java')
-rw-r--r-- | javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java b/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java new file mode 100644 index 000000000..1dcd802a5 --- /dev/null +++ b/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java @@ -0,0 +1,114 @@ +/* + * Copyright (C) 2007-2010 JĂșlio Vilmar Gesser. + * Copyright (C) 2011, 2013-2016 The JavaParser Team. + * + * This file is part of JavaParser. + * + * JavaParser can be used either under the terms of + * a) the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * b) the terms of the Apache License + * + * You should have received a copy of both licenses in LICENCE.LGPL and + * LICENCE.APACHE. Please refer to those files for details. + * + * JavaParser is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + */ + +package com.github.javaparser.bdd.steps; + +import com.github.javaparser.ParseException; +import com.github.javaparser.ast.CompilationUnit; +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.visitor.ModifierVisitor; +import com.github.javaparser.printer.PrettyPrinterConfiguration; +import org.jbehave.core.annotations.Given; +import org.jbehave.core.annotations.Then; +import org.jbehave.core.annotations.When; + +import java.io.File; +import java.io.FileReader; +import java.io.IOException; +import java.net.URISyntaxException; +import java.net.URL; + +import static com.github.javaparser.JavaParser.*; +import static com.github.javaparser.utils.Utils.readerToString; +import static org.junit.Assert.assertEquals; + +public class PrettyPrintingSteps { + + private Node resultNode; + private String sourceUnderTest; + + @Given("the {class|compilation unit|expression|block|statement|import|annotation|body|class body|interface body}:$classSrc") + public void givenTheClass(String classSrc) { + this.sourceUnderTest = classSrc.trim(); + } + + @Given("the {class|compilation unit|expression|block|statement|import|annotation|body|class body|interface body} in the file \"$classFile\"") + public void givenTheClassInTheFile(String classFile) throws URISyntaxException, IOException, ParseException { + URL url = getClass().getResource("../samples/" + classFile); + sourceUnderTest = readerToString(new FileReader(new File(url.toURI()))).trim(); + } + + @When("the {class|compilation unit} is parsed by the Java parser") + public void whenTheClassIsParsedByTheJavaParser() { + resultNode = parse(sourceUnderTest); + } + + @When("the expression is parsed by the Java parser") + public void whenTheExpressionIsParsedByTheJavaParser() { + resultNode = parseExpression(sourceUnderTest); + } + + @When("the block is parsed by the Java parser") + public void whenTheBlockIsParsedByTheJavaParser() { + resultNode = parseBlock(sourceUnderTest); + } + + @When("the statement is parsed by the Java parser") + public void whenTheStatementIsParsedByTheJavaParser() { + resultNode = parseStatement(sourceUnderTest); + } + + @When("the import is parsed by the Java parser") + public void whenTheImportIsParsedByTheJavaParser() { + resultNode = parseImport(sourceUnderTest); + } + + @When("the annotation is parsed by the Java parser") + public void whenTheAnnotationIsParsedByTheJavaParser() { + resultNode = parseAnnotation(sourceUnderTest); + } + + @When("the annotation body declaration is parsed by the Java parser") + public void whenTheBodyDeclarationIsParsedByTheJavaParser() { + resultNode = parseAnnotationBodyDeclaration(sourceUnderTest); + } + + @When("the class body declaration is parsed by the Java parser") + public void whenTheClassBodyDeclarationIsParsedByTheJavaParser() { + resultNode = parseBodyDeclaration(sourceUnderTest); + } + + @When("the interface body declaration is parsed by the Java parser") + public void whenTheInterfaceBodyDeclarationIsParsedByTheJavaParser() { + resultNode = parseBodyDeclaration(sourceUnderTest); + } + + @When("the class is visited by an empty ModifierVisitorAdapter") + public void whenTheClassIsVisitedByAnEmptyModifierVisitorAdapter() { + (new ModifierVisitor<Void>() { + }).visit((CompilationUnit) resultNode, null); + } + + @Then("it is printed as:$src") + public void isPrintedAs(String src) { + assertEquals(src.trim(), resultNode.toString().trim()); + } +} |