2
2
3
3
4
4
import main .Session ;
5
+ import main .controllers .Project .SuiteController ;
6
+ import main .controllers .Project .TestRunController ;
5
7
import main .exceptions .AqualityException ;
8
+ import main .exceptions .AqualityQueryParameterException ;
6
9
import main .model .db .imports .Importer ;
7
10
import main .model .db .imports .TestNameNodeType ;
8
- import main .model .dto .ImportDto ;
9
- import main .model .dto .ImportTokenDto ;
10
- import main .model .dto .TestRunDto ;
11
- import main .model .dto .TestSuiteDto ;
11
+ import main .model .dto .*;
12
12
import main .utils .FileUtils ;
13
13
import main .utils .PathUtils ;
14
14
import main .view .BaseServlet ;
27
27
@ WebServlet ("/import" )
28
28
@ MultipartConfig
29
29
public class ExecuteImportServlet extends BaseServlet implements IPost {
30
+
31
+ private Integer projectId ;
32
+ private String buildName ;
33
+ private String author ;
34
+ private String suiteName ;
35
+ private Integer testRunId ;
36
+ private Boolean addToLastTestRun ;
37
+ private String environment ;
38
+ private String cilink ;
39
+ private Boolean singleTestRun ;
40
+ private String format ;
41
+ private String importToken ;
42
+ private SuiteController suiteController ;
43
+ private TestRunController testRunController ;
44
+
30
45
@ Override
31
46
public void doPost (HttpServletRequest req , HttpServletResponse resp ) {
32
47
setPostResponseHeaders (resp );
33
48
try {
34
- Boolean singleTestRun = getBooleanQueryParameter (req , ImportParams .singleTestRun .name ());
35
- Integer projectId = getIntegerQueryParameter (req , ImportParams .projectId .name ());
36
- String format = getStringQueryParameter (req , ImportParams .format .name ());
37
- String buildName = getStringQueryParameter (req , ImportParams .buildName .name ());
38
- String author = getStringQueryParameter (req , ImportParams .author .name ());
39
- String suiteName = getStringQueryParameter (req , ImportParams .suite .name ());
40
- String importToken = getStringQueryParameter (req , ImportParams .importToken .name ());
41
- Integer testRunId = getIntegerQueryParameter (req , ImportParams .testRunId .name ());
42
- Boolean addToLastTestRun = getBooleanQueryParameter (req , ImportParams .addToLastTestRun .name ());
43
- String environment = getStringQueryParameter (req , ImportParams .environment .name ());
44
- String cilink = getStringQueryParameter (req , ImportParams .cilink .name ());
45
-
46
- validateRequest (singleTestRun , projectId , format , buildName , author , suiteName );
47
-
48
- Session session ;
49
- if (importToken != null ) {
50
- session = new Session (importToken , projectId );
51
- } else {
52
- session = createSession (req );
53
- }
49
+ readParameters (req );
50
+ Session session = importToken != null
51
+ ? new Session (importToken , projectId )
52
+ : createSession (req );
53
+
54
+ suiteController = session .controllerFactory .getHandler (new TestSuiteDto ());
55
+ testRunController = session .controllerFactory .getHandler (new TestRunDto ());
54
56
55
57
List <String > filePaths = doUpload (req , resp , projectId );
56
58
57
59
Importer importer = session .getImporter (
58
60
filePaths ,
59
- prepareTestRun (session , testRunId , addToLastTestRun , environment , cilink , projectId , buildName , author , suiteName ),
61
+ prepareTestRun (),
60
62
getStringQueryParameter (req , ImportParams .pattern .name ()),
61
63
getStringQueryParameter (req , ImportParams .format .name ()),
62
64
getTestNameNodeType (req ),
@@ -77,11 +79,25 @@ public void doOptions(HttpServletRequest req, HttpServletResponse resp) {
77
79
setPostResponseHeaders (resp );
78
80
}
79
81
80
- private TestRunDto prepareTestRun (Session session , Integer testRunId , Boolean addToLastTestRun , String environment , String cilink ,
81
- Integer projectId , String buildName , String author , String suiteName ) throws AqualityException {
82
+ private void readParameters (HttpServletRequest req ) throws AqualityQueryParameterException {
83
+ singleTestRun = getBooleanQueryParameter (req , ImportParams .singleTestRun .name ());
84
+ format = getStringQueryParameter (req , ImportParams .format .name ());
85
+ importToken = getStringQueryParameter (req , ImportParams .importToken .name ());
86
+ projectId = getIntegerQueryParameter (req , ImportParams .projectId .name ());
87
+ buildName = getStringQueryParameter (req , ImportParams .buildName .name ());
88
+ author = getStringQueryParameter (req , ImportParams .author .name ());
89
+ suiteName = getStringQueryParameter (req , ImportParams .suite .name ());
90
+ testRunId = getIntegerQueryParameter (req , ImportParams .testRunId .name ());
91
+ addToLastTestRun = getBooleanQueryParameter (req , ImportParams .addToLastTestRun .name ());
92
+ environment = getStringQueryParameter (req , ImportParams .environment .name ());
93
+ cilink = getStringQueryParameter (req , ImportParams .cilink .name ());
94
+ validateRequest ();
95
+ }
82
96
97
+ private TestRunDto prepareTestRun () throws AqualityException {
83
98
TestSuiteDto testSuiteTemplate = new TestSuiteDto ();
84
99
testSuiteTemplate .setName (suiteName );
100
+ testSuiteTemplate .setProject_id (projectId );
85
101
86
102
TestRunDto testRunTemplate = new TestRunDto ();
87
103
testRunTemplate .setProject_id (projectId );
@@ -90,45 +106,38 @@ private TestRunDto prepareTestRun(Session session, Integer testRunId, Boolean ad
90
106
testRunTemplate .setAuthor (author );
91
107
testRunTemplate .setExecution_environment (environment );
92
108
testRunTemplate .setTest_suite (testSuiteTemplate );
93
- testRunTemplate .setId (getTestRunId (session , testRunId , addToLastTestRun , testSuiteTemplate ));
109
+ testRunTemplate .setId (getTestRunId ());
94
110
95
111
return testRunTemplate ;
96
112
}
97
113
98
- private Integer getTestRunId (Session session , Integer testRunId , Boolean addToLastTestRun , TestSuiteDto suite ) throws AqualityException {
99
- if (testRunId != null ) {
114
+ private Integer getTestRunId () throws AqualityException {
115
+ if (testRunId != null ) {
100
116
return testRunId ;
101
117
}
102
118
103
119
if (addToLastTestRun ) {
104
- List <TestSuiteDto > testSuites = session .controllerFactory .getHandler (suite ).get (suite );
105
- TestRunDto testRunTemplate = new TestRunDto ();
106
- testRunTemplate .setTest_suite_id (testSuites .get (0 ).getId ());
107
-
108
- List <TestRunDto > testRuns = session .controllerFactory .getHandler (testRunTemplate ).get (testRunTemplate );
109
- if (!testRuns .isEmpty ()){
110
- return testRuns .get (0 ).getId ();
111
- }
120
+ return testRunController .getLastSuiteTestRun (suiteController .get (suiteName , projectId ).getId (), projectId ).getId ();
112
121
}
113
122
114
123
return null ;
115
124
}
116
125
117
- private void validateRequest (Boolean singleTestRun , Integer projectId , String format , String buildName , String author , String suiteName ) throws InvalidParameterException {
126
+ private void validateRequest () throws AqualityQueryParameterException {
118
127
119
128
if (singleTestRun )
120
129
{
121
130
if (projectId == null || format == null || buildName == null || author == null ){
122
- throw new InvalidParameterException ("ProjectId or/and Format or/and Author or/and BuildName parameters are missed." );
131
+ throw new AqualityQueryParameterException ("ProjectId or/and Format or/and Author or/and BuildName parameters are missed." );
123
132
}
124
133
}else {
125
134
if (projectId == null || format == null ){
126
- throw new InvalidParameterException ("ProjectId or/and Format parameters are missed." );
135
+ throw new AqualityQueryParameterException ("ProjectId or/and Format parameters are missed." );
127
136
}
128
137
}
129
138
if (format .equals (ImportTypes .MSTest .name ()) || format .equals (ImportTypes .Cucumber .name ())){
130
139
if (suiteName == null ){
131
- throw new InvalidParameterException ("Suite parameter is missed." );
140
+ throw new AqualityQueryParameterException ("Suite parameter is missed." );
132
141
}
133
142
}
134
143
}
0 commit comments