@@ -17,6 +17,9 @@ public class ResultController extends BaseController<TestResultDto> {
17
17
private ProjectUserController projectUserController ;
18
18
private ResultResolutionController resultResolutionController ;
19
19
private FinalResultController finalResultController ;
20
+ private ProjectController projectController ;
21
+ private StepController stepController ;
22
+ private StepResultController stepResultController ;
20
23
21
24
public ResultController (UserDto user ) {
22
25
super (user );
@@ -26,12 +29,19 @@ public ResultController(UserDto user) {
26
29
testDao = new TestDao ();
27
30
resultResolutionController = new ResultResolutionController (user );
28
31
finalResultController = new FinalResultController (user );
32
+ projectController = new ProjectController (user );
33
+ stepController = new StepController (user );
34
+ stepResultController = new StepResultController (user );
29
35
}
30
36
31
37
@ Override
32
38
public TestResultDto create (TestResultDto template ) throws AqualityException {
33
39
if (baseUser .isManager () || baseUser .getProjectUser (template .getProject_id ()).isEditor ()){
34
- return testResultDao .create (template );
40
+ TestResultDto testResult = testResultDao .create (template );
41
+ if (projectController .isStepsEnabled (testResult .getProject_id ()) && template .getId () == null ){
42
+ createPendingStepResults (testResult );
43
+ }
44
+ return testResult ;
35
45
}else {
36
46
throw new AqualityPermissionsException ("Account is not allowed to create Test Result" , baseUser );
37
47
}
@@ -75,7 +85,23 @@ public List<TestResultStatDto> get(TestResultStatDto template) throws AqualityEx
75
85
}
76
86
}
77
87
78
- //TODO Refactoring
88
+ private void createPendingStepResults (TestResultDto template ) throws AqualityException {
89
+ Step2TestDto step2TestTemplate = new Step2TestDto ();
90
+ step2TestTemplate .setProject_id (template .getProject_id ());
91
+ step2TestTemplate .setTest_id (template .getTest_id ());
92
+ List <StepDto > testSteps = stepController .getTestSteps (step2TestTemplate );
93
+ for (StepDto step : testSteps ) {
94
+ StepResultDto stepResult = new StepResultDto ();
95
+ stepResult .setProject_id (template .getProject_id ());
96
+ stepResult .setResult_id (template .getId ());
97
+ stepResult .setType_id (step .getType_id ());
98
+ stepResult .setName (step .getName ());
99
+ stepResult .setFinal_result_id (3 );
100
+ stepResult .setOrder (step .getOrder ());
101
+ stepResultController .create (stepResult );
102
+ }
103
+ }
104
+
79
105
private List <TestResultDto > fillResults (List <TestResultDto > results ) throws AqualityException {
80
106
81
107
if (results .size () > 0 ){
@@ -86,20 +112,38 @@ private List<TestResultDto> fillResults(List<TestResultDto> results) throws Aqua
86
112
List <TestDto > tests = testDao .searchAll (testTemplate );
87
113
88
114
for (TestResultDto result : results ){
89
-
90
- result .setFinal_result (finalResults .stream ().filter ( x -> x .getId ().equals (result .getFinal_result_id ())).findFirst ().orElse (null ));
91
- result .setTest (tests .stream ().filter (x -> x .getId ().equals (result .getTest_id ())).findFirst ().orElse (null ));
92
- result .setTest_resolution (resolutions .stream ().filter ( x -> x .getId ().equals (result .getTest_resolution_id ())).findFirst ().orElse (null ));
93
-
94
- if (result .getAssignee () != null ){
95
- ProjectUserDto projectUserDto = new ProjectUserDto ();
96
- projectUserDto .setUser_id (result .getAssignee ());
97
- projectUserDto .setProject_id (result .getProject_id ());
98
- result .setAssigned_user (projectUserController .get (projectUserDto ).get (0 ));
99
- }
115
+ fillResult (result , finalResults , resolutions , tests );
100
116
}
101
117
}
102
118
103
119
return results ;
104
120
}
121
+
122
+ private void fillResult (TestResultDto result , List <FinalResultDto > finalResults , List <ResultResolutionDto > resolutions , List <TestDto > tests ) throws AqualityException {
123
+ if (projectController .isStepsEnabled (result .getProject_id ())) {
124
+ fillResultSteps (result );
125
+ }
126
+
127
+ result .setFinal_result (finalResults .stream ().filter (x -> x .getId ().equals (result .getFinal_result_id ())).findFirst ().orElse (null ));
128
+ result .setTest (tests .stream ().filter (x -> x .getId ().equals (result .getTest_id ())).findFirst ().orElse (null ));
129
+ result .setTest_resolution (resolutions .stream ().filter (x -> x .getId ().equals (result .getTest_resolution_id ())).findFirst ().orElse (null ));
130
+ fillResultAssignee (result );
131
+ }
132
+
133
+ private void fillResultSteps (TestResultDto result ) throws AqualityException {
134
+ StepResultDto stepResultTemplate = new StepResultDto ();
135
+ stepResultTemplate .setResult_id (result .getId ());
136
+ stepResultTemplate .setProject_id (result .getProject_id ());
137
+ result .setSteps (stepResultController .get (stepResultTemplate ));
138
+ }
139
+
140
+ private void fillResultAssignee (TestResultDto result ) throws AqualityException {
141
+ if (result .getAssignee () != null ) {
142
+ ProjectUserDto projectUserDto = new ProjectUserDto ();
143
+ projectUserDto .setUser_id (result .getAssignee ());
144
+ projectUserDto .setProject_id (result .getProject_id ());
145
+ result .setAssigned_user (projectUserController .get (projectUserDto ).get (0 ));
146
+ }
147
+ }
148
+
105
149
}
0 commit comments