Skip to content

Commit 9ac2b13

Browse files
added maven surefire support (#77)
* added maven surefire support * refactored HandlerFactory class * api version increased to 1.0.2 * updated changelog * refactored unit tests for imports of testng and junit types
1 parent 1c0ea8e commit 9ac2b13

15 files changed

+90
-127
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# CHANGELOG
22

3+
## 1.0.2 (2020-08-18)
4+
5+
Changes:
6+
- Added new import type - Maven Surefire, it will be used for JUnit/TestNG Java projects
7+
38
## 1.0.1
49

510
Bugfixes:

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<groupId>unifi_reporting_api</groupId>
77
<artifactId>api</artifactId>
88
<packaging>war</packaging>
9-
<version>1.0.1</version>
9+
<version>1.0.2</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

src/main/java/main/model/db/imports/HandlerFactory.java

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
import main.model.db.imports.ImportHandlers.*;
55

66
import java.io.File;
7+
import java.util.Arrays;
78
import java.util.Date;
9+
import java.util.List;
10+
import java.util.stream.Collectors;
811

912
class HandlerFactory {
13+
1014
Handler getHandler(File file, String type, TestNameNodeType testNameNodeType, Date finishTime) throws AqualityException {
11-
switch (ImportTypes.valueOf(type)){
15+
validateTypeOnNameNodeRequirements(ImportTypes.valueOf(type), testNameNodeType);
16+
17+
switch (ImportTypes.valueOf(type)) {
1218
case MSTest:
13-
if(testNameNodeType == null){
14-
throw new AqualityException("testNameNode is required");
15-
}
1619
return new TRX(file, testNameNodeType);
1720
case Robot:
1821
return new Robot(file);
1922
case JUnit:
2023
case TestNG:
21-
if(testNameNodeType == null){
22-
throw new AqualityException("testNameNode is required");
23-
}
24-
return new JavaJUnitTestNG(file, testNameNodeType, finishTime);
24+
case MavenSurefire:
25+
return new MavenSurefireHandler(file, testNameNodeType, finishTime);
2526
case Cucumber:
2627
case TestNGCucumber:
2728
return new Cucumber(file, finishTime);
@@ -30,12 +31,25 @@ Handler getHandler(File file, String type, TestNameNodeType testNameNodeType, Da
3031
case NUnit_v2:
3132
return new NUnitV2(file);
3233
case NUnit_v3:
33-
if(testNameNodeType == null){
34-
throw new AqualityException("testNameNode is required");
35-
}
3634
return new NUnitV3(file, testNameNodeType);
3735
default:
38-
throw new AqualityException(String.format("Import Type '%s' is not implemented", type));
36+
throw new AqualityException(String.format("Import type '%s' is not implemented", type));
37+
}
38+
}
39+
40+
private void validateTypeOnNameNodeRequirements(ImportTypes type, TestNameNodeType nodeType) throws AqualityException {
41+
List<ImportTypes> nameNodeRequiredTypes = Arrays.asList(
42+
ImportTypes.MSTest,
43+
ImportTypes.JUnit,
44+
ImportTypes.TestNG,
45+
ImportTypes.MavenSurefire,
46+
ImportTypes.NUnit_v3);
47+
if (nameNodeRequiredTypes.contains(type) && nodeType == null) {
48+
throw new AqualityException(String.format("While you are using import type '%1$s' the TestNameNodeType is required. Allowed values: %2$s",
49+
type,
50+
Arrays.stream(TestNameNodeType.values())
51+
.map(TestNameNodeType::toString)
52+
.collect(Collectors.joining(","))));
3953
}
4054
}
4155
}

src/main/java/main/model/db/imports/ImportHandlers/JavaJUnitTestNG.java renamed to src/main/java/main/model/db/imports/ImportHandlers/MavenSurefireHandler.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import main.exceptions.AqualityException;
44
import main.model.db.imports.Handler;
5-
import main.model.db.imports.SAXHandlers.JavaJUnitTestNGHandler;
5+
import main.model.db.imports.SAXHandlers.MavenSurefireSaxHandler;
66
import main.model.db.imports.TestNameNodeType;
77
import main.model.dto.project.TestDto;
88
import main.model.dto.project.TestResultDto;
@@ -15,11 +15,11 @@
1515
import java.util.Date;
1616
import java.util.List;
1717

18-
public class JavaJUnitTestNG extends Handler {
19-
private JavaJUnitTestNGHandler handler;
18+
public class MavenSurefireHandler extends Handler {
19+
private MavenSurefireSaxHandler handler;
2020

21-
public JavaJUnitTestNG(File file, TestNameNodeType testNameNodeType, Date finishTime) throws AqualityException {
22-
handler = new JavaJUnitTestNGHandler(testNameNodeType, finishTime);
21+
public MavenSurefireHandler(File file, TestNameNodeType testNameNodeType, Date finishTime) throws AqualityException {
22+
handler = new MavenSurefireSaxHandler(testNameNodeType, finishTime);
2323
try {
2424
this.parser.parse(file, handler);
2525
} catch (SAXException | IOException e) {

src/main/java/main/model/db/imports/ImportTypes.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,5 +9,6 @@ public enum ImportTypes {
99
TestNGCucumber,
1010
PHPCodeception,
1111
NUnit_v2,
12-
NUnit_v3
12+
NUnit_v3,
13+
MavenSurefire
1314
}

src/main/java/main/model/db/imports/SAXHandlers/JavaJUnitTestNGHandler.java renamed to src/main/java/main/model/db/imports/SAXHandlers/MavenSurefireSaxHandler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import static main.model.db.imports.ResultStatus.*;
1616

17-
public class JavaJUnitTestNGHandler extends Handler {
17+
public class MavenSurefireSaxHandler extends Handler {
1818
private TestSuiteDto testSuite = new TestSuiteDto();
1919
private List<TestResultDto> results = new ArrayList<>();
2020
private TestResultDto result;
@@ -27,7 +27,7 @@ public class JavaJUnitTestNGHandler extends Handler {
2727

2828
private static final String BLANK_RESULT = "$blank";
2929

30-
public JavaJUnitTestNGHandler(TestNameNodeType testNameNodeType, Date finishTime) throws AqualityException {
30+
public MavenSurefireSaxHandler(TestNameNodeType testNameNodeType, Date finishTime) throws AqualityException {
3131
super();
3232
this.testNameNodeType = testNameNodeType;
3333
testRun.setFinish_time(finishTime);

src/test/java/tests/workers/imports/JUnit/ClassNameJUnitHandlerTest.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/test/java/tests/workers/imports/JUnit/TestNameJUnitHandlerTest.java

Lines changed: 0 additions & 10 deletions
This file was deleted.

src/test/java/tests/workers/imports/TestNG/ClassNameTestNGHandlerTest.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

src/test/java/tests/workers/imports/TestNG/TestNameTestNGHandlerTest.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)