aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-testing/src/test/java/com/github/javaparser/bdd/steps/PrettyPrintingSteps.java
diff options
context:
space:
mode:
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.java114
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());
+ }
+}