Skip to content

Commit 30a51ec

Browse files
Merge pull request #45 from aquality-automation/feature/Test_Run_view_Add_stability_indicator
Feature/test run view add stability indicator
2 parents 97f2c2a + 2d38d3b commit 30a51ec

File tree

13 files changed

+186
-35
lines changed

13 files changed

+186
-35
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
## 0.3.6 (unreleased)
44

55
Features:
6-
6+
- Test Run view: Add stability indicator -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/60)
7+
78
Bugfixes:
89
- Fixed for downloading audits results from Audits Dashboard -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/51)
910

src/main/java/main/controllers/Project/ResultController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
public class ResultController extends BaseController<TestResultDto> {
1414
private TestResultDao testResultDao;
1515
private TestResultStatDao testResultStatDao;
16-
private TestDao testDao;
16+
private TestController testController;
1717
private ProjectUserController projectUserController;
1818
private ResultResolutionController resultResolutionController;
1919
private FinalResultController finalResultController;
@@ -26,7 +26,7 @@ public ResultController(UserDto user) {
2626
testResultDao = new TestResultDao();
2727
testResultStatDao = new TestResultStatDao();
2828
projectUserController = new ProjectUserController(user);
29-
testDao = new TestDao();
29+
testController = new TestController(user);
3030
resultResolutionController = new ResultResolutionController(user);
3131
finalResultController = new FinalResultController(user);
3232
projectController = new ProjectController(user);
@@ -118,7 +118,7 @@ private List<TestResultDto> fillResults(List<TestResultDto> results) throws Aqua
118118

119119
TestDto testTemplate = new TestDto();
120120
testTemplate.setProject_id(results.get(0).getProject_id());
121-
List<TestDto> tests = testDao.searchAll(testTemplate);
121+
List<TestDto> tests = testController.get(testTemplate);
122122

123123
ProjectUserDto projectUserDto = new ProjectUserDto();
124124
projectUserDto.setProject_id(results.get(0).getProject_id());

src/main/java/main/controllers/Project/SuiteController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ private List<TestSuiteDto> fillTestSuites(List<TestSuiteDto> testSuites, boolean
129129
TestDto testTemplate = new TestDto();
130130
testTemplate.setTest_suite_id(suite.getId());
131131
testTemplate.setProject_id(suite.getProject_id());
132-
List<TestDto> tests = testController.get(testTemplate, false);
132+
List<TestDto> tests = testController.get(testTemplate);
133133
suite.setTests(tests);
134134
}
135135
}

src/main/java/main/controllers/Project/TestController.java

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,19 @@
1313

1414
public class TestController extends BaseController<TestDto> {
1515
private TestDao testDao;
16+
private ProjectDao projectDao;
1617
private TestSuiteDao suiteDao;
17-
private ResultController resultController;
18+
private TestResultDao resultDao;
1819
private Test2SuiteController test2SuiteController;
1920
private ProjectUserController projectUserController;
2021

2122
public TestController(UserDto user) {
2223
super(user);
24+
2325
testDao = new TestDao();
2426
suiteDao = new TestSuiteDao();
25-
resultController = new ResultController(user);
27+
projectDao = new ProjectDao();
28+
resultDao = new TestResultDao();
2629
test2SuiteController = new Test2SuiteController(user);
2730
projectUserController = new ProjectUserController(user);
2831
}
@@ -45,19 +48,14 @@ public TestDto create(TestDto template) throws AqualityException {
4548
return create(template, false);
4649
}
4750

48-
public List<TestDto> get(TestDto template, boolean withChildren) throws AqualityException {
51+
public List<TestDto> get(TestDto template) throws AqualityException {
4952
if (baseUser.isFromGlobalManagement() || baseUser.getProjectUser(template.getProject_id()).isViewer()) {
50-
return fillTests(testDao.searchAll(template), withChildren);
53+
return fillTests(testDao.searchAll(template));
5154
} else {
5255
throw new AqualityPermissionsException("Account is not allowed to view Tests", baseUser);
5356
}
5457
}
5558

56-
@Override
57-
public List<TestDto> get(TestDto template) throws AqualityException {
58-
return get(template, false);
59-
}
60-
6159
@Override
6260
public boolean delete(TestDto template) throws AqualityException {
6361
if (baseUser.isManager() || baseUser.getProjectUser(template.getProject_id()).isEditor()) {
@@ -93,13 +91,16 @@ private TestDto getTestForMovement(int id, int projectId) throws AqualityExcepti
9391
TestDto test = new TestDto();
9492
test.setId(id);
9593
test.setProject_id(projectId);
96-
97-
return get(test, true).get(0);
94+
test = get(test).get(0);
95+
TestResultDto resultSearchTemplate = new TestResultDto();
96+
resultSearchTemplate.setTest_id(test.getId());
97+
test.setResults(resultDao.searchAll(resultSearchTemplate));
98+
return test;
9899
}
99100

100101
private void executeResultsMovement(List<TestResultDto> resultsToMove) throws AqualityException {
101102
for (TestResultDto result : resultsToMove) {
102-
resultController.create(result);
103+
resultDao.create(result);
103104
}
104105
}
105106

@@ -118,7 +119,7 @@ protected List<TestResultDto> getResultsToMove(TestDto from, TestDto to) {
118119
}
119120

120121
//TODO Refactoring
121-
private List<TestDto> fillTests(List<TestDto> tests, boolean withChildren) throws AqualityException {
122+
private List<TestDto> fillTests(List<TestDto> tests) throws AqualityException {
122123
List<TestDto> filledTests = new ArrayList<>();
123124
if (tests.size() > 0) {
124125
Integer projectId = tests.get(0).getProject_id();
@@ -129,6 +130,10 @@ private List<TestDto> fillTests(List<TestDto> tests, boolean withChildren) throw
129130
testSuiteDto.setProject_id(projectId);
130131
List<TestSuiteDto> testSuites = suiteDao.searchAll(testSuiteDto);
131132
List<Test2SuiteDto> test2Suites = new ArrayList<>();
133+
ProjectDto projectDto = new ProjectDto();
134+
projectDto.setId(tests.get(0).getProject_id());
135+
projectDto = projectDao.getEntityById(projectDto);
136+
132137
for (TestSuiteDto testSuite : testSuites) {
133138
Test2SuiteDto test2Suite = new Test2SuiteDto();
134139
test2Suite.setSuite_id(testSuite.getId());
@@ -141,16 +146,12 @@ private List<TestDto> fillTests(List<TestDto> tests, boolean withChildren) throw
141146
test.setDeveloper(projectUsers.stream().filter(x -> x.getUser().getId().equals(test.getDeveloper_id())).findFirst().orElse(null));
142147
}
143148

149+
if(projectDto.getStability_count() != null) {
150+
test.setLastResultColors(testDao.getLastColors(test.getId(), projectDto.getStability_count()));
151+
}
152+
144153
List<Test2SuiteDto> testSuiteLinks = test2Suites.stream().filter(x -> x.getTest_id().equals(test.getId())).collect(Collectors.toList());
145154
test.setSuites(test2SuiteController.convertToSuites(testSuiteLinks, testSuites));
146-
147-
if (withChildren) {
148-
TestResultDto testResultTemplate = new TestResultDto();
149-
testResultTemplate.setTest_id(test.getId());
150-
testResultTemplate.setProject_id(test.getProject_id());
151-
testResultTemplate.setLimit(0);
152-
test.setResults(resultController.get(testResultTemplate));
153-
}
154155
filledTests.add(test);
155156
}
156157
}

src/main/java/main/controllers/Project/TestRunController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ private void createPendingResults(TestRunDto testRunTemplate) throws AqualityExc
9090
TestDto testTemplate = new TestDto();
9191
testTemplate.setTest_suite_id(testRunTemplate.getTest_suite_id());
9292
testTemplate.setProject_id(testRunTemplate.getProject_id());
93-
List<TestDto> tests = testController.get(testTemplate, false);
93+
List<TestDto> tests = testController.get(testTemplate);
9494
for (TestDto test : tests) {
9595
TestResultDto pendingTestResult = new TestResultDto();
9696
pendingTestResult.setProject_id(test.getProject_id());

src/main/java/main/model/db/dao/project/ProjectDao.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class ProjectDao extends DAO<ProjectDto> {
77
public ProjectDao(){
88
super(ProjectDto.class);
99
select = "{call SELECT_PROJECT(?,?,?,?)}";
10-
insert = "{call INSERT_PROJECT(?,?,?,?,?)}";
10+
insert = "{call INSERT_PROJECT(?,?,?,?,?,?)}";
1111
remove = "{call REMOVE_PROJECT(?)}";
1212
}
1313
}

src/main/java/main/model/db/dao/project/TestDao.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package main.model.db.dao.project;
22

3+
import com.mysql.cj.core.conf.url.ConnectionUrlParser;
4+
import main.exceptions.AqualityException;
35
import main.model.db.dao.DAO;
6+
import main.model.dto.DtoMapper;
7+
import main.model.dto.LastResultColorsDto;
48
import main.model.dto.TestDto;
9+
import org.jetbrains.annotations.NotNull;
10+
11+
import java.util.ArrayList;
12+
import java.util.List;
513

614
public class TestDao extends DAO<TestDto> {
715
public TestDao() {
@@ -10,4 +18,12 @@ public TestDao() {
1018
insert = "{call INSERT_TEST(?,?,?,?,?,?)}";
1119
remove = "{call REMOVE_TEST(?)}";
1220
}
21+
22+
public LastResultColorsDto getLastColors(@NotNull Integer testId, @NotNull Integer limit) throws AqualityException {
23+
DtoMapper<LastResultColorsDto> lastResultColorsMapper = new DtoMapper<>(LastResultColorsDto.class);
24+
List<ConnectionUrlParser.Pair<String, String>> parameters = new ArrayList<>();
25+
parameters.add(new ConnectionUrlParser.Pair<>("request_test_id", testId.toString()));
26+
parameters.add(new ConnectionUrlParser.Pair<>("request_limit", limit.toString()));
27+
return lastResultColorsMapper.mapObjects(CallStoredProcedure("{call SELECT_LAST_RESULT_COLORS(?,?)}", parameters).toString()).get(0);
28+
}
1329
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package main.model.dto;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class LastResultColorsDto extends BaseDto {
7+
private String resolution_colors;
8+
private String result_colors;
9+
private String result_ids;
10+
}

src/main/java/main/model/dto/ProjectDto.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,7 @@ public class ProjectDto extends BaseDto{
3434
@DataBaseName(name = "request_compare_result_pattern")
3535
@DataBaseInsert
3636
private String compare_result_pattern;
37+
@DataBaseName(name = "request_stability_count")
38+
@DataBaseInsert
39+
private Integer stability_count;
3740
}

src/main/java/main/model/dto/TestDto.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,5 @@ public class TestDto extends BaseDto {
3939
@DataBaseName(name="request_test_suite_id")
4040
@DataBaseSearchable
4141
private Integer test_suite_id;
42+
private LastResultColorsDto lastResultColors;
4243
}

0 commit comments

Comments
 (0)