Skip to content

Commit e974f5a

Browse files
authored
Merge pull request #6 from MontiCore/simplify-tests
Simplify and refactor tests
2 parents ff2338a + 8f618da commit e974f5a

File tree

15 files changed

+299
-630
lines changed

15 files changed

+299
-630
lines changed

javaDSL/src/main/java/de/monticore/java/reporting/JavaDSL2ODDelegator.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,10 @@ public JavaDSL2ODDelegator(IndentPrinter printer, ReportingRepository reporting)
7171
MCArrayTypes2OD mcArrayTypes = new MCArrayTypes2OD(printer, reporting);
7272
this.traverser.add4MCArrayTypes(mcArrayTypes);
7373
this.traverser.setMCArrayTypesHandler(mcArrayTypes);
74-
75-
/*
76-
* TODO
77-
* MCBasics2OD does not implement MCBasicsHandler. Figure out if
78-
* this is a bug or intended.
79-
*/
74+
8075
MCBasics2OD mcBasics = new MCBasics2OD(printer, reporting);
8176
this.traverser.add4MCBasics(mcBasics);
82-
// this.traverser.setMCBasicsHandler(mcBasics);
77+
this.traverser.setMCBasicsHandler(mcBasics);
8378

8479
MCBasicTypes2OD mcBasicTypes = new MCBasicTypes2OD(printer, reporting);
8580
this.traverser.add4MCBasicTypes(mcBasicTypes);

javaDSL/src/main/java/de/monticore/java/reporting/JavaDSLNodeIdentHelper.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,8 @@
1616
import de.monticore.statements.mccommonstatements._ast.ASTFormalParameter;
1717
import de.monticore.statements.mcvardeclarationstatements._ast.ASTDeclaratorId;
1818
import de.monticore.statements.mcvardeclarationstatements._ast.ASTVariableDeclarator;
19-
import de.monticore.types.mcbasictypes.MCBasicTypesMill;
2019
import de.monticore.types.mcbasictypes._ast.ASTMCPrimitiveType;
2120
import de.monticore.types.mcbasictypes._ast.ASTMCQualifiedName;
22-
import de.monticore.types.typeparameters._ast.ASTTypeParameters;
2321

2422
public class JavaDSLNodeIdentHelper extends ASTNodeIdentHelper {
2523

@@ -142,7 +140,15 @@ public String getIdent(ASTMCPrimitiveType node) {
142140
String name = node.printType();
143141
return format(name, type);
144142
}
145-
143+
144+
public String getIdent(ASTStringLiteral symbol) {
145+
return format(symbol.getValue());
146+
}
147+
148+
public String getIdent(ASTIntLiteral symbol) {
149+
return format(String.valueOf(symbol.getValue()));
150+
}
151+
146152
@Override
147153
public String getIdent(ASTNode a) {
148154
if (a instanceof ASTConstructorDeclaration) {
@@ -190,9 +196,6 @@ else if (a instanceof ASTMCQualifiedName) {
190196
else if (a instanceof ASTFieldDeclaration) {
191197
return getIdent((ASTFieldDeclaration) a);
192198
}
193-
else if (a instanceof ASTTypeParameters) {
194-
return getIdent((ASTTypeParameters) a);
195-
}
196199
else if (a instanceof ASTEnumDeclaration) {
197200
return getIdent((ASTEnumDeclaration) a);
198201
}

javaDSL/src/test/java/de/monticore/java/AbstractTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@ public void reset() {
2323
LogStub.init();
2424
JavaDSLMill.init();
2525
JavaDSLMill.globalScope().clear();
26-
CD4CodeMill.init();
27-
CD4CodeMill.globalScope().clear();
26+
LogStub.getFindings().clear();
2827
}
2928

3029
}

javaDSL/src/test/java/de/monticore/java/JavaDSLParserTest.java

Lines changed: 50 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,16 @@
33

44
import de.monticore.expressions.expressionsbasis._ast.ASTExpression;
55
import de.monticore.java.javadsl.JavaDSLMill;
6-
import de.monticore.java.javadsl._ast.ASTCompilationUnit;
76
import de.monticore.java.javadsl._ast.ASTJavaBlock;
87
import de.monticore.java.javadsl._ast.ASTTextBlockLiteral;
98
import de.monticore.java.javadsl._parser.JavaDSLParser;
109
import de.monticore.literals.mcliteralsbasis._ast.ASTLiteral;
1110
import org.junit.jupiter.api.Test;
11+
import org.junit.jupiter.params.ParameterizedTest;
12+
import org.junit.jupiter.params.provider.ValueSource;
1213

1314
import java.io.IOException;
1415
import java.io.StringReader;
15-
import java.nio.file.Path;
16-
import java.nio.file.Paths;
1716
import java.util.Optional;
1817

1918
import static de.monticore.java.JavaDSLAssertions.*;
@@ -22,39 +21,20 @@
2221

2322
public class JavaDSLParserTest extends AbstractTest {
2423

25-
@Test
26-
public void test1() throws IOException {
27-
Path model = Paths.get("src/test/resources/de/monticore/java/parser/ASTClassDeclaration.java");
28-
JavaDSLParser parser = JavaDSLMill.parser();
29-
Optional<ASTCompilationUnit> ast = parser.parse(model.toString());
30-
assertFalse(parser.hasErrors());
31-
assertTrue(ast.isPresent());
32-
// AST2ModelFiles.get().serializeASTInstance(ast.get(), "ASTClassDeclaration");
33-
}
34-
35-
@Test
36-
public void test2() throws IOException {
37-
Path model = Paths.get("src/test/resources/de/monticore/java/parser/ParseException.java");
38-
JavaDSLParser parser = JavaDSLMill.parser();
39-
Optional<ASTCompilationUnit> ast = parser.parse(model.toString());
40-
assertFalse(parser.hasErrors());
41-
assertTrue(ast.isPresent());
42-
// AST2ModelFiles.get().serializeASTInstance(ast.get(), "ParseException");
43-
}
44-
45-
@Test
46-
public void test3() throws IOException {
47-
Path model = Paths.get("src/test/resources/de/monticore/java/parser/TokenMgrError.java");
48-
JavaDSLParser parser = JavaDSLMill.parser();
49-
Optional<ASTCompilationUnit> ast = parser.parse(model.toString());
50-
assertFalse(parser.hasErrors());
51-
assertTrue(ast.isPresent());
52-
//AST2ModelFiles.get().serializeASTInstance(ast.get(), "TokenMgrError");
24+
@ParameterizedTest
25+
@ValueSource(strings = {
26+
"src/test/resources/de/monticore/java/parser/ASTClassDeclaration.java",
27+
"src/test/resources/de/monticore/java/parser/ParseException.java",
28+
"src/test/resources/de/monticore/java/parser/TokenMgrError.java",
29+
"src/test/resources/parsableAndCompilableModels/simpleTestClasses/HelloWorld.java"
30+
})
31+
public void testParser(String path) throws IOException {
32+
assertParsingSuccess(path);
5333
}
5434

5535
@Test
56-
public void test4() throws IOException {
57-
StringBuffer buffer = new StringBuffer("");
36+
public void testJavaBlock() throws IOException {
37+
StringBuffer buffer = new StringBuffer();
5838
buffer.append("{ _channel = HIDDEN;");
5939
buffer.append("if (getCompiler() != null) {");
6040
buffer.append(" de.monticore.ast.Comment _comment = new de.monticore.ast.Comment(getText());");
@@ -69,51 +49,52 @@ public void test4() throws IOException {
6949
assertFalse(parser.hasErrors());
7050
assertTrue(ast.isPresent());
7151
}
72-
73-
@Test
74-
public void test5() throws IOException {
75-
Path model = Paths
76-
.get("src/test/resources/parsableAndCompilableModels/simpleTestClasses/HelloWorld.java");
77-
JavaDSLParser parser = JavaDSLMill.parser();
78-
Optional<ASTCompilationUnit> ast = parser.parse(model.toString());
79-
assertFalse(parser.hasErrors());
80-
assertTrue(ast.isPresent());
81-
// AST2ModelFiles.get().serializeASTInstance(ast.get(), "ASTClassDeclaration");
82-
}
83-
84-
@Test
85-
public void testCondition() throws IOException {
52+
53+
@ParameterizedTest
54+
@ValueSource(strings = {
55+
"ch = str.charAt(i) < 0x20"
56+
})
57+
public void testCondition(String input) throws IOException {
8658
JavaDSLParser parser = JavaDSLMill.parser();
87-
Optional<ASTExpression> ast = parser.parse_StringExpression("ch = str.charAt(i) < 0x20");
59+
Optional<ASTExpression> ast = parser.parse_StringExpression(input);
8860
assertTrue(ast.isPresent());
8961
}
90-
91-
@Test
92-
public void testLambdas() throws IOException {
62+
63+
@ParameterizedTest
64+
@ValueSource(strings = {
65+
"foo -> foo",
66+
"(foo, bar) -> foo",
67+
"(foo, bar) -> { return foo; }"
68+
})
69+
public void testLambdas(String input) throws IOException {
9370
JavaDSLParser parser = JavaDSLMill.parser();
94-
assertTrue(parser.parse_StringExpression("foo -> foo").isPresent());
95-
assertTrue(parser.parse_StringExpression("(foo, bar) -> foo").isPresent());
96-
assertTrue(parser.parse_StringExpression("(foo, bar) -> { return foo; }").isPresent());
71+
assertTrue(parser.parse_StringExpression(input).isPresent());
9772
}
9873

99-
@Test
100-
public void testMethodReferences() throws IOException {
74+
@ParameterizedTest
75+
@ValueSource(strings = {
76+
"String::length",
77+
"System::currentTimeMillis",
78+
"List<String>::size",
79+
"int[]::clone",
80+
"System.out::println",
81+
"\"abc\"::length",
82+
"foo[x]::bar",
83+
"(test ? list.replaceAll(String::trim) : list) :: iterator",
84+
"super::toString",
85+
"Arrays::<String>sort"
86+
})
87+
public void testMethodReferences(String input) throws IOException {
10188
JavaDSLParser parser = JavaDSLMill.parser();
102-
assertTrue(parser.parse_StringExpression("String::length").isPresent());
103-
assertTrue(parser.parse_StringExpression("System::currentTimeMillis").isPresent());
104-
assertTrue(parser.parse_StringExpression("List<String>::size").isPresent());
105-
assertTrue(parser.parse_StringExpression("int[]::clone").isPresent());
106-
assertTrue(parser.parse_StringExpression("System.out::println").isPresent());
107-
assertTrue(parser.parse_StringExpression("\"abc\"::length").isPresent());
108-
assertTrue(parser.parse_StringExpression("foo[x]::bar").isPresent());
109-
assertTrue(parser.parse_StringExpression("(test ? list.replaceAll(String::trim) : list) :: iterator").isPresent());
110-
assertTrue(parser.parse_StringExpression("super::toString").isPresent());
111-
assertTrue(parser.parse_StringExpression("Arrays::<String>sort").isPresent());
89+
assertTrue(parser.parse_StringExpression(input).isPresent());
11290
}
11391

114-
@Test
115-
public void testModuleDeclaration() {
116-
assertParsingSuccess("src/test/resources/moduleDeclaration/module-info.java");
92+
@ParameterizedTest
93+
@ValueSource(strings = {
94+
"src/test/resources/moduleDeclaration/module-info.java"
95+
})
96+
public void testModuleDeclaration(String path) {
97+
assertParsingSuccess(path);
11798
}
11899

119100
@Test

javaDSL/src/test/java/de/monticore/java/JavaDSLPrettyPrinterTest.java

Lines changed: 27 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -12,79 +12,50 @@
1212
import java.nio.file.Paths;
1313
import java.util.Optional;
1414

15-
import org.junit.jupiter.api.Test;
15+
import de.se_rwth.commons.logging.Log;
16+
import org.junit.jupiter.params.ParameterizedTest;
17+
import org.junit.jupiter.params.provider.ValueSource;
1618

1719
import static org.junit.jupiter.api.Assertions.*;
1820

1921
public final class JavaDSLPrettyPrinterTest extends AbstractTest {
20-
22+
23+
@ParameterizedTest
24+
@ValueSource(strings = {
25+
"src/test/resources/de/monticore/java/parser/ASTClassDeclaration.java",
26+
"src/test/resources/de/monticore/java/parser/ParseException.java",
27+
"src/test/resources/de/monticore/java/parser/TokenMgrError.java",
28+
"src/test/resources/parsableAndCompilableModels/simpleTestClasses/HelloWorld.java"
29+
})
30+
public void testPrettyPrinter(String path) throws IOException {
31+
// Parse input
32+
ASTJavaDSLNode ast = parse(path);
33+
34+
// Prettyprinting input
35+
String output = JavaDSLMill.prettyPrint(ast, false);
36+
37+
// Parsing printed input
38+
ASTJavaDSLNode printedAST = parse(new StringReader(output));
39+
assertTrue(ast.deepEquals(printedAST));
40+
assertTrue(Log.getFindings().isEmpty());
41+
}
42+
2143
private ASTJavaDSLNode parse(String modelName) throws IOException {
2244
Path model = Paths.get(modelName);
2345
JavaDSLParser parser = JavaDSLMill.parser();
2446
Optional<ASTCompilationUnit> ast = parser.parse(model.toString());
2547
assertFalse(parser.hasErrors());
2648
assertTrue(ast.isPresent());
49+
assertTrue(Log.getFindings().isEmpty());
2750
return ast.get();
2851
}
29-
52+
3053
private ASTJavaDSLNode parse(StringReader reader) throws IOException {
3154
JavaDSLParser parser = JavaDSLMill.parser();
3255
Optional<ASTCompilationUnit> ast = parser.parse(reader);
3356
assertFalse(parser.hasErrors());
3457
assertTrue(ast.isPresent());
58+
assertTrue(Log.getFindings().isEmpty());
3559
return ast.get();
3660
}
37-
38-
@Test
39-
public void test1() throws IOException {
40-
// Parse input
41-
ASTJavaDSLNode ast = parse("src/test/resources/de/monticore/java/parser/ASTClassDeclaration.java");
42-
43-
// Prettyprinting input
44-
String output = JavaDSLMill.prettyPrint(ast, false);
45-
46-
// Parsing printed input
47-
ASTJavaDSLNode printedAST = parse(new StringReader(output));
48-
assertTrue(ast.deepEquals(printedAST));
49-
}
50-
51-
@Test
52-
public void test2() throws IOException {
53-
// Parse input
54-
ASTJavaDSLNode ast = parse("src/test/resources/de/monticore/java/parser/ParseException.java");
55-
56-
// Prettyprinting input
57-
String output = JavaDSLMill.prettyPrint(ast, false);
58-
59-
// Parsing printed input
60-
ASTJavaDSLNode printedAST = parse(new StringReader(output));
61-
assertTrue(ast.deepEquals(printedAST));
62-
}
63-
64-
@Test
65-
public void test3() throws IOException {
66-
// Parse input
67-
ASTJavaDSLNode ast = parse("src/test/resources/de/monticore/java/parser/TokenMgrError.java");
68-
69-
// Prettyprinting input
70-
String output = JavaDSLMill.prettyPrint(ast, false);
71-
72-
// Parsing printed input
73-
ASTJavaDSLNode printedAST = parse(new StringReader(output));
74-
assertTrue(ast.deepEquals(printedAST));
75-
}
76-
77-
@Test
78-
public void test4() throws IOException {
79-
// Parse input
80-
ASTJavaDSLNode ast = parse("src/test/resources/parsableAndCompilableModels/simpleTestClasses/HelloWorld.java");
81-
82-
// Prettyprinting input
83-
String output = JavaDSLMill.prettyPrint(ast, false);
84-
85-
// Parsing printed input
86-
ASTJavaDSLNode printedAST = parse(new StringReader(output));
87-
assertTrue(ast.deepEquals(printedAST));
88-
}
89-
9061
}

0 commit comments

Comments
 (0)