aboutsummaryrefslogtreecommitdiff
path: root/javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story')
-rw-r--r--javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story498
1 files changed, 498 insertions, 0 deletions
diff --git a/javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story b/javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story
new file mode 100644
index 000000000..e509fc998
--- /dev/null
+++ b/javaparser-testing/src/test/resources/com/github/javaparser/bdd/comment_attribution_scenarios.story
@@ -0,0 +1,498 @@
+Scenario: A Class With Line Comments is processed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+public class ClassWithLineComments {
+
+ public void aMethod(){
+ // first comment
+ int a=0; // second comment
+ // third comment
+ // fourth comment
+ }
+}
+When the class is parsed by the Java parser
+Then the compilation unit is not commented
+Then the compilation unit has 0 orphan comments
+Then class 1 has 4 total contained comments
+Then method 1 in class 1 has 4 total contained comments
+Then method 1 in class 1 has 0 orphan comments
+Then block statement in method 1 in class 1 has 4 total contained comments
+Then block statement in method 1 in class 1 has 3 orphan comments
+
+
+
+Scenario: A Class With Line Comments is processed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+/**Javadoc associated with the class*/
+public class ClassWithOrphanComments {
+ //a first comment floating in the class
+
+ //comment associated to the method
+ void foo(){
+ /*comment floating inside the method*/
+ }
+
+ //a second comment floating in the class
+}
+
+//Orphan comment inside the CompilationUnit
+When the class is parsed by the Java parser
+Then the compilation unit is not commented
+Then the compilation unit has 6 contained comments
+Then the compilation unit orphan comment 1 is "Orphan comment inside the CompilationUnit"
+Then class 1 orphan comment 1 is "a first comment floating in the class"
+Then class 1 orphan comment 2 is "a second comment floating in the class"
+Then class 1 is commented "Javadoc associated with the class"
+Then class 1 has 4 total contained comments
+Then method 1 in class 1 has 0 orphan comments
+Then method 1 in class 1 is commented "comment associated to the method"
+Then comment 1 in method 1 in class 1 is "comment floating inside the method"
+Then block statement in method 1 in class 1 orphan comment 1 is "comment floating inside the method"
+
+
+Scenario: A Class With Orphan Comment in Class Declaration is parsed by the Java Parser
+
+Given the class:
+class /*Comment1*/ A {
+ //comment2
+ // comment3
+ int a;
+ /**comment4
+ *
+ * */
+ //comment5
+}
+When the class is parsed by the Java parser
+Then class 1 is not commented
+Then class 1 orphan comment 1 is "Comment2"
+
+
+Scenario: A Class With Line Comments in Multiple Methods is parsed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+public class ClassWithLineCommentsInMultipleMethods {
+
+ public void aMethod() {
+ // first comment
+ int a = 0; //second comment
+ // third comment
+ // fourth comment
+ }
+
+ public void anotherMethod() {
+ // a unique comment
+ // first comment
+ int a = 0; //second comment
+ // third comment
+ // fourth comment
+ }
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 9 contained comments
+Then the compilation unit has 0 orphan comments
+Then class 1 is not commented
+Then class 1 has 9 total contained comments
+Then method 1 in class 1 has 4 total contained comments
+Then method 1 in class 1 has 0 orphan comments
+Then block statement in method 1 in class 1 has 4 total contained comments
+Then block statement in method 1 in class 1 has 3 orphan comments
+Then method 2 in class 1 has 5 total contained comments
+Then method 2 in class 1 has 0 orphan comments
+Then block statement in method 2 in class 1 has 5 total contained comments
+Then block statement in method 2 in class 1 has 4 orphan comments
+
+
+
+Scenario: A Class With Line Comments in Multiple Methods is parsed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+public class ClassWithLineCommentInsideBlockComment {
+
+ /* comment to a method */
+ void foo(){}
+
+ /*// Line Comment put immediately after block comment
+
+ //// Comment debauchery
+
+ another orphan.
+ It spans over more lines */
+}
+When the class is parsed by the Java parser
+Then method 1 in class 1 is commented " comment to a method "
+Then class 1 orphan comment 1 is "// Line Comment put immediately after block comment
+
+ //// Comment debauchery
+
+ another orphan.
+ It spans over more lines "
+
+
+
+Scenario: A Class With Line Comments on Fields is parsed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+public class Issue43 {
+ //Case 1
+ private String field1 = null; //field1
+
+ //Case 2
+ private String field2
+ = null; //field2
+
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 4 contained comments
+Then class 1 has 4 total contained comments
+Then class 1 has 1 orphan comment
+Then class 1 orphan comment 1 is "Case 1"
+Then field 1 in class 1 contains 0 comments
+!--Then field 2 in class 1 contains 0 comments
+Then field 1 in class 1 is commented "field1"
+Then field 2 in class 1 is commented "Case 2"
+Then variable 1 value of field 2 in class 1 is commented "field2"
+
+
+Scenario: Another Class With Line Comments on Fields is parsed by the Java Parser
+
+Given the class:
+package japa.parser.comments;
+
+public class Issue43variant {
+ private String field1 = null; //field1
+
+ private String field2
+ = null; //field2
+
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 2 contained comments
+Then class 1 has 2 total contained comments
+Then field 1 in class 1 contains 0 comments
+!--Then field 2 in class 1 contains 0 comments
+Then field 1 in class 1 is commented "field1"
+Then variable 1 value of field 2 in class 1 is commented "field2"
+
+
+Scenario: A Class With Mixed Comments on Fields is parsed by the Java Parser
+
+Given the class:
+package japa.parser.javacc;
+public class Teste {
+ //line comment1
+ int a = 0; //line comment2
+ int b = 0; //line comment3
+ int c = 0; /* multi-line
+ * comment
+ */
+ int d = 0; /** multi-line
+ * javadoc */
+ int e = 0;
+}
+//final comment
+When the class is parsed by the Java parser
+Then the compilation unit has 6 contained comments
+Then class 1 has 5 total contained comments
+Then class 1 orphan comment 1 is "line comment1"
+Then field 1 in class 1 is commented "line comment2"
+Then field 2 in class 1 is commented "line comment3"
+Then field 3 in class 1 is not commented
+
+
+
+Scenario: Comment with a preceding line space is an orphan
+
+Given the class:
+//comment
+
+class A {}
+When the class is parsed by the Java parser
+Then the compilation unit orphan comment 1 is "comment"
+
+
+Scenario: Comment without a preceding line space is associated to class
+
+Given the class:
+//comment
+class A {}
+When the class is parsed by the Java parser
+Then class 1 is commented "comment"
+
+
+Scenario: Comments after Javadoc are attributed to the method if flag is active
+
+Given the class:
+class Issue40{
+ @GET
+ @Path("original")
+ /**
+ * Return the original user.
+ */
+ public User getOriginalUser(String userName) {
+ return userService.getOriginalUser(userName);
+ }
+}
+When the do not consider annotations as node start for code attribution is true on the Java parser
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is not an orphan
+Then method 1 in class 1 is commented "* Return the original user."
+
+
+
+Scenario: Comments after Javadoc are attributed to the method if flag is not active
+
+Given the class:
+class Issue40{
+ @GET
+ @Path("original")
+ /**
+ * Return the original user.
+ */
+ public User getOriginalUser(String userName) {
+ return userService.getOriginalUser(userName);
+ }
+}
+When the do not consider annotations as node start for code attribution is false on the Java parser
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is not an orphan
+Then type of method 1 in class 1 is commented "* Return the original user."
+
+
+Scenario: A Class With Line Comments is processed by the Java Parser
+
+Given the class:
+/*CompilationUnitComment*/
+package japa.parser.comments;
+
+public class ClassWithMixedStyleComments {
+ // line comment
+ int a = 0;
+ // another line comment
+ int b = 0;
+ // line comment
+ int c = 0;
+ /* multi-line
+ comment
+ */
+ int d = 0;
+ /**
+ * multi-line
+ */
+ int e = 0;
+ // final comment
+}
+When the class is parsed by the Java parser
+Then the compilation is commented "CompilationUnitComment"
+Then class 1 is not commented
+Then class 1 has 6 total contained comments
+Then class 1 orphan comment 1 is " final comment"
+Then field 1 in class 1 is commented " line comment"
+Then field 1 in class 1 contains 0 comments
+Then field 2 in class 1 is commented " another line comment"
+Then field 2 in class 1 contains 0 comments
+Then field 3 in class 1 is commented " line comment"
+Then field 3 in class 1 contains 0 comments
+Then field 4 in class 1 is commented " multi-line comment"
+Then field 4 in class 1 contains 0 comments
+Then field 5 in class 1 is commented " * multi-line"
+Then field 5 in class 1 contains 0 comments
+
+
+Scenario: A class with only an orphan comment is processed by the Java Parser
+
+Given the class:
+class A {
+ // orphan comment"
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is an orphan
+Then comment 1 in compilation unit parent is ClassOrInterfaceDeclaration
+
+
+
+Scenario: A class with only a class comment is processed by the Java Parser
+
+Given the class:
+/* Comment of the class */
+class A {
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is not an orphan
+Then comment 1 in compilation unit commented node is ClassOrInterfaceDeclaration
+
+
+
+Scenario: A Class With two comments at class level is processed by the Java Parser
+
+Given the class:
+/* Orphan comment */
+/* Comment of the class */
+class A {
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 2 contained comments
+Then comment 1 in compilation unit is an orphan
+Then the compilation unit orphan comment 1 is "Orphan comment"
+Then comment 2 in compilation unit is not an orphan
+Then comment 2 in compilation unit commented node is ClassOrInterfaceDeclaration
+
+
+Scenario: A Class has a comment associated to a field when processed by the Java Parser
+
+Given the class:
+class A {
+ int a = 0; // comment associated to the field
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is not an orphan
+Then comment 1 in compilation unit commented node is FieldDeclaration
+
+
+Scenario: A Class has a comment associated to a the literal when processed by the Java Parser
+
+Given the class:
+class A {
+ int a
+ = 0; // comment associated to the field
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is not an orphan
+Then comment 1 in compilation unit commented node is IntegerLiteralExpr
+
+
+
+Scenario: A Class with two line comment within a method when processed by the Java Parser
+
+Given the class:
+class A {
+ void foo() {
+ // a comment
+ int b; // another comment
+ }
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 2 contained comments
+Then comment 1 in compilation unit is an orphan
+Then comment 1 in compilation unit is "a comment"
+Then comment 2 in compilation unit is not an orphan
+Then comment 2 in compilation unit is "another comment"
+Then comment 2 in compilation unit commented node is ExpressionStmt
+
+
+Scenario: A Class with an inline comment inside a block comment is parsed by the Java Parser
+
+Given the class:
+class A {
+ /* A block comment that
+ // Contains a line comment
+ */
+ public static void main(String args[]) {
+ }
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit is "A block comment that // Contains a line comment"
+
+
+Scenario: A Class with an inline comment inbetween annotation a method declaration is parsed Java Parser
+
+Given the class:
+class A {
+ @Override
+ // Returns number of vowels in a name
+ public int countVowels(String name) {
+ }
+}
+When the class is parsed by the Java parser
+Then the compilation unit has 1 contained comments
+Then comment 1 in compilation unit commented node is PrimitiveType
+
+Scenario: We print correctly two consecutive line-comments in a class
+
+Given the class:
+class A {
+ // foo
+ // bar
+ void aMethod(){}
+}
+When the class is parsed by the Java parser
+Then it is printed as:
+class A {
+
+ // foo
+ // bar
+ void aMethod() {
+ }
+}
+
+Scenario: We print correctly two consecutive line-comments in a method
+
+Given the class:
+class A {
+ void aMethod(){
+ // foo
+ // bar
+ int a;
+ }
+}
+When the class is parsed by the Java parser
+Then it is printed as:
+class A {
+
+ void aMethod() {
+ // foo
+ // bar
+ int a;
+ }
+}
+
+Scenario: We print correctly orphan comments in a for loop
+Given the class:
+class A {
+ public static List calcularResultadoFinal(List avaliacoes) throws SQLException, ClassNotFoundException{
+ for(Avaliacao avaliacao: avaliacoes){
+ // if(avaliacao.obterAprovacao()){
+ // avaliacao.setResultadoFinal("Aprovado");
+ // }else{
+ // avaliacao.setResultadoFinal("Reprovado");
+ // }
+ avaliacao.setEmAberto(false);
+ avaliacao.editar();
+ }
+ return avaliacoes;
+ }
+}
+When the class is parsed by the Java parser
+Then it is printed as:
+class A {
+
+ public static List calcularResultadoFinal(List avaliacoes) throws SQLException, ClassNotFoundException {
+ for (Avaliacao avaliacao : avaliacoes) {
+ // if(avaliacao.obterAprovacao()){
+ // avaliacao.setResultadoFinal("Aprovado");
+ // }else{
+ // avaliacao.setResultadoFinal("Reprovado");
+ // }
+ avaliacao.setEmAberto(false);
+ avaliacao.editar();
+ }
+ return avaliacoes;
+ }
+}