Skip to content

Commit bebb29a

Browse files
Merge pull request #64 from aquality-automation/develop
0.3.9
2 parents b76352d + bad1ceb commit bebb29a

File tree

295 files changed

+8606
-592
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

295 files changed

+8606
-592
lines changed

.circleci/config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- ~/.m2
2424
key: v1-dependencies-{{ checksum "pom.xml" }}
2525

26-
- run: mvn test -f pom.xml -P !run-migration
26+
- run: mvn clean test -f pom.xml -P !run-migration
2727

2828
- run:
2929
name: Save test results

CHANGELOG.md

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

3+
## 0.3.9 (Unreleased)
4+
5+
Features:
6+
- Added unit tests for import handlers -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/81)
7+
- Added unit tests for checking DAO's -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/80)
8+
39
## 0.3.8 (2020-03-11)
410

511
Features:

pom.xml

Lines changed: 2 additions & 2 deletions
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>0.3.8</version>
9+
<version>0.3.9</version>
1010

1111
<properties>
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -146,7 +146,7 @@
146146
<dependency>
147147
<groupId>org.testng</groupId>
148148
<artifactId>testng</artifactId>
149-
<version>6.14.3</version>
149+
<version>7.0.0</version>
150150
<scope>test</scope>
151151
</dependency>
152152
<dependency>

src/main/java/main/Session.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99
import main.model.db.dao.project.UserDao;
1010
import main.model.db.imports.Importer;
1111
import main.model.db.imports.TestNameNodeType;
12-
import main.model.dto.*;
12+
import main.model.dto.project.APITokenDto;
13+
import main.model.dto.project.ProjectUserDto;
14+
import main.model.dto.project.TestRunDto;
15+
import main.model.dto.settings.UserDto;
1316
import main.model.email.TestRunEmails;
1417

1518
import javax.naming.AuthenticationException;

src/main/java/main/controllers/Administration/AdministrationController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package main.controllers.Administration;
22

33
import main.exceptions.AqualityException;
4-
import main.model.dto.UserDto;
4+
import main.model.dto.settings.UserDto;
55

66
public class AdministrationController {
77
private UserController userController;

src/main/java/main/controllers/Administration/AppSettingsController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.settings.AppSettingsDao;
77
import main.model.db.dao.settings.LdapDao;
8-
import main.model.dto.AppSettingsDto;
9-
import main.model.dto.LdapDto;
10-
import main.model.dto.UserDto;
8+
import main.model.dto.settings.AppSettingsDto;
9+
import main.model.dto.settings.LdapDto;
10+
import main.model.dto.settings.UserDto;
1111
import org.apache.commons.codec.binary.Base64;
1212
import org.apache.commons.codec.binary.StringUtils;
1313
import org.apache.poi.util.NotImplemented;

src/main/java/main/controllers/Administration/EmailSettingsController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import main.controllers.BaseController;
44
import main.exceptions.AqualityException;
55
import main.model.db.dao.settings.EmailSettingsDao;
6-
import main.model.dto.EmailSettingsDto;
7-
import main.model.dto.UserDto;
6+
import main.model.dto.settings.EmailSettingsDto;
7+
import main.model.dto.settings.UserDto;
88
import org.apache.poi.util.NotImplemented;
99

1010
import java.util.List;

src/main/java/main/controllers/Administration/StepTypeController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
import main.controllers.BaseController;
44
import main.exceptions.AqualityException;
55
import main.model.db.dao.project.StepTypeDao;
6-
import main.model.dto.StepTypeDto;
7-
import main.model.dto.UserDto;
6+
import main.model.dto.project.StepTypeDto;
7+
import main.model.dto.settings.UserDto;
88

99
import java.util.List;
1010

src/main/java/main/controllers/Administration/UserController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import main.model.db.dao.project.PasswordDao;
88
import main.model.db.dao.project.UserDao;
99
import main.model.db.dao.project.UserSessionDao;
10-
import main.model.dto.PasswordDto;
11-
import main.model.dto.UserDto;
10+
import main.model.dto.settings.PasswordDto;
11+
import main.model.dto.settings.UserDto;
1212
import main.model.dto.UserSessionDto;
1313
import main.utils.DateUtils;
1414
import main.utils.LDAP.LDAPAuthenticator;

src/main/java/main/controllers/AuditController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import main.model.db.dao.audit.*;
88
import main.model.db.dao.project.ProjectDao;
99
import main.model.db.dao.project.UserDao;
10-
import main.model.dto.*;
10+
import main.model.dto.audit.*;
11+
import main.model.dto.project.ProjectDto;
12+
import main.model.dto.settings.UserDto;
1113
import main.utils.ExcelUtils;
1214
import main.utils.FileUtils;
1315
import org.json.JSONArray;

src/main/java/main/controllers/BaseController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package main.controllers;
22

33
import main.model.dto.BaseDto;
4-
import main.model.dto.UserDto;
4+
import main.model.dto.settings.UserDto;
55

66
public abstract class BaseController<T extends BaseDto> implements IController<T>{
77
protected UserDto baseUser;

src/main/java/main/controllers/ControllerFactory.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
import main.controllers.Administration.StepTypeController;
55
import main.controllers.Administration.UserController;
66
import main.controllers.Project.*;
7-
import main.model.dto.*;
7+
import main.model.dto.project.*;
8+
import main.model.dto.settings.EmailSettingsDto;
9+
import main.model.dto.settings.UserDto;
810

911
public class ControllerFactory {
1012
private UserDto user;
@@ -73,4 +75,7 @@ public StepTypeController getHandler(StepTypeDto entity) {
7375
public PredefinedResolutionController getHandler(PredefinedResolutionDto entity) {
7476
return new PredefinedResolutionController(user);
7577
}
78+
public IssueController getHandler(IssueDto entity) {
79+
return new IssueController(user);
80+
}
7681
}

src/main/java/main/controllers/CustomerController.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
import main.model.db.dao.customer.CustomerDao;
66
import main.model.db.dao.project.ProjectDao;
77
import main.model.db.dao.project.UserDao;
8-
import main.model.dto.*;
8+
import main.model.dto.customer.CustomerDto;
9+
import main.model.dto.project.ProjectDto;
10+
import main.model.dto.settings.UserDto;
911

1012
import java.util.ArrayList;
1113
import java.util.List;

src/main/java/main/controllers/PermissionsChecker.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package main.controllers;
22

33
import main.exceptions.AqualityPermissionsException;
4-
import main.model.dto.UserDto;
4+
import main.model.dto.settings.UserDto;
55

66
public class PermissionsChecker {
77
private UserDto baseUser;

src/main/java/main/controllers/Project/APITokenController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.APITokenDao;
7-
import main.model.dto.APITokenDto;
8-
import main.model.dto.UserDto;
7+
import main.model.dto.project.APITokenDto;
8+
import main.model.dto.settings.UserDto;
99
import org.apache.commons.codec.digest.DigestUtils;
1010
import org.apache.poi.util.NotImplemented;
1111

src/main/java/main/controllers/Project/BodyPatternController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.BodyPatternDao;
7-
import main.model.dto.BodyPatternDto;
8-
import main.model.dto.UserDto;
7+
import main.model.dto.project.BodyPatternDto;
8+
import main.model.dto.settings.UserDto;
99

1010
import java.util.List;
1111

src/main/java/main/controllers/Project/FinalResultController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.FinalResultDao;
7-
import main.model.dto.FinalResultDto;
8-
import main.model.dto.UserDto;
7+
import main.model.dto.project.FinalResultDto;
8+
import main.model.dto.settings.UserDto;
99

1010
import java.util.List;
1111

src/main/java/main/controllers/Project/ImportController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.ImportDao;
7-
import main.model.dto.ImportDto;
8-
import main.model.dto.UserDto;
7+
import main.model.dto.project.ImportDto;
8+
import main.model.dto.settings.UserDto;
99
import org.apache.poi.util.NotImplemented;
1010

1111
import java.util.List;
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
package main.controllers.Project;
2+
3+
import main.controllers.BaseController;
4+
import main.exceptions.AqualityException;
5+
import main.exceptions.AqualityPermissionsException;
6+
import main.model.db.dao.project.IssueDao;
7+
import main.model.db.dao.project.IssueStatusDao;
8+
import main.model.db.dao.project.TestResultDao;
9+
import main.model.db.dao.project.UserDao;
10+
import main.model.dto.project.*;
11+
import main.model.dto.settings.UserDto;
12+
import main.utils.RegexpUtil;
13+
14+
import java.util.ArrayList;
15+
import java.util.List;
16+
import java.util.stream.Collectors;
17+
18+
public class IssueController extends BaseController<IssueDto> {
19+
private IssueDao issueDao;
20+
private IssueStatusDao issueStatusDao;
21+
private UserDao userDao;
22+
private TestResultDao testResultDao;
23+
private ResultResolutionController resultResolutionController;
24+
25+
public IssueController(UserDto user) {
26+
super(user);
27+
issueDao = new IssueDao();
28+
issueStatusDao = new IssueStatusDao();
29+
userDao = new UserDao();
30+
testResultDao = new TestResultDao();
31+
resultResolutionController = new ResultResolutionController(user);
32+
}
33+
@Override
34+
public List<IssueDto> get(IssueDto entity) throws AqualityException {
35+
if (baseUser.isManager() || baseUser.getProjectUser(entity.getProject_id()).isViewer()) {
36+
return fillIssues(issueDao.searchAll(entity));
37+
} else {
38+
throw new AqualityPermissionsException("Account is not allowed to view Issues", baseUser);
39+
}
40+
}
41+
42+
@Override
43+
public IssueDto create(IssueDto entity) throws AqualityException {
44+
if (baseUser.isManager() || baseUser.getProjectUser(entity.getProject_id()).isEditor()) {
45+
List<IssueDto> issues = new ArrayList<>();
46+
issues.add(issueDao.create(entity));
47+
return fillIssues(issues).get(0);
48+
} else {
49+
throw new AqualityPermissionsException("Account is not allowed to create Issues", baseUser);
50+
}
51+
}
52+
53+
@Override
54+
public boolean delete(IssueDto entity) throws AqualityException {
55+
return false;
56+
}
57+
58+
public List<IssueStatusDto> get(IssueStatusDto status) throws AqualityException {
59+
return issueStatusDao.searchAll(status);
60+
}
61+
62+
public void updateResultsWithIssue(IssueDto issue) throws AqualityException {
63+
TestResultDto resultSearchTemplate = new TestResultDto();
64+
resultSearchTemplate.setProject_id(issue.getProject_id());
65+
List<TestResultDto> results = testResultDao.searchAll(resultSearchTemplate);
66+
results = results.stream().filter(x -> x.getFinal_result_id() != 2 && x.getFail_reason() != null && x.getIssue_id() == null).collect(Collectors.toList());
67+
for (TestResultDto result : results) {
68+
if (RegexpUtil.match(result.getFail_reason(), issue.getExpression())) {
69+
result.setIssue_id(issue.getId());
70+
testResultDao.create(result);
71+
}
72+
}
73+
}
74+
75+
private List<IssueDto> fillIssues(List<IssueDto> issues) throws AqualityException {
76+
if(issues.isEmpty()) {
77+
return issues;
78+
}
79+
80+
List<UserDto> users = userDao.getAll();
81+
List<IssueStatusDto> issueStatuses = get(new IssueStatusDto());
82+
List<IssueDto> filledIssues = new ArrayList<>();
83+
84+
ResultResolutionDto resultResolution = new ResultResolutionDto();
85+
resultResolution.setProject_id(issues.get(0).getProject_id());
86+
List<ResultResolutionDto> resultResolutions = resultResolutionController.get(resultResolution);
87+
88+
for (IssueDto issue : issues) {
89+
filledIssues.add(fillIssue(issue, users, issueStatuses, resultResolutions));
90+
}
91+
92+
return filledIssues;
93+
}
94+
95+
private IssueDto fillIssue(IssueDto issue, List<UserDto> users, List<IssueStatusDto> issueStatuses, List<ResultResolutionDto> resultResolutions){
96+
UserDto assignee = users.stream().filter(x -> x.getId().equals(issue.getAssignee_id())).findFirst().orElse(null);
97+
UserDto creator = users.stream().filter(x -> x.getId().equals(issue.getCreator_id())).findFirst().orElse(null);
98+
if (assignee != null) {
99+
issue.setAssignee(assignee.toPublic());
100+
}
101+
if (creator != null) {
102+
issue.setCreator(creator.toPublic());
103+
}
104+
issue.setStatus(issueStatuses.stream().filter(x -> x.getId().equals(issue.getStatus_id())).findFirst().orElse(null));
105+
issue.setResolution(resultResolutions.stream().filter(x -> x.getId().equals(issue.getResolution_id())).findFirst().orElse(null));
106+
107+
return issue;
108+
}
109+
}

src/main/java/main/controllers/Project/MilestoneController.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.MilestoneDao;
77
import main.model.db.dao.project.Suite2MilestoneDao;
8-
import main.model.dto.MilestoneDto;
9-
import main.model.dto.Suite2MilestoneDto;
10-
import main.model.dto.TestSuiteDto;
11-
import main.model.dto.UserDto;
8+
import main.model.dto.project.MilestoneDto;
9+
import main.model.dto.project.Suite2MilestoneDto;
10+
import main.model.dto.project.TestSuiteDto;
11+
import main.model.dto.settings.UserDto;
1212

1313
import java.util.List;
1414
import java.util.Objects;

src/main/java/main/controllers/Project/PredefinedResolutionController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44
import main.exceptions.AqualityException;
55
import main.exceptions.AqualityPermissionsException;
66
import main.model.db.dao.project.PredefinedResolutionDao;
7-
import main.model.dto.*;
7+
import main.model.dto.project.PredefinedResolutionDto;
8+
import main.model.dto.project.ProjectUserDto;
9+
import main.model.dto.project.ResultResolutionDto;
10+
import main.model.dto.settings.UserDto;
811

912
import java.util.List;
1013

src/main/java/main/controllers/Project/ProjectController.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import main.exceptions.AqualityException;
66
import main.exceptions.AqualityPermissionsException;
77
import main.model.db.dao.project.*;
8-
import main.model.dto.*;
8+
import main.model.dto.customer.CustomerDto;
9+
import main.model.dto.project.ProjectDto;
10+
import main.model.dto.project.ProjectUserDto;
11+
import main.model.dto.settings.UserDto;
912

1013
import java.util.*;
1114

src/main/java/main/controllers/Project/ProjectUserController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import main.exceptions.AqualityException;
66
import main.exceptions.AqualityPermissionsException;
77
import main.model.db.dao.project.ProjectUserDao;
8-
import main.model.dto.ProjectUserDto;
9-
import main.model.dto.UserDto;
8+
import main.model.dto.project.ProjectUserDto;
9+
import main.model.dto.settings.UserDto;
1010

1111
import java.util.List;
1212

0 commit comments

Comments
 (0)