Skip to content

Commit 1d8e049

Browse files
Merge pull request #71 from aquality-automation/Update_to_Angular_9
Update to angular 9
2 parents 7a4aab4 + e29c1e0 commit 1d8e049

13 files changed

+149
-122
lines changed

CHANGELOG.md

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

3+
## 1.0.0 (Unreleased)
4+
5+
Features:
6+
- Migrate to Angular 9 -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/101)
7+
- Add Execution environment column to Test History table -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/107)
8+
9+
Bugfixes:
10+
- [API] /api/public/test/create-or-update does not update list of suites -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/105)
11+
- External issue link is incorrect on Issues table -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/108)
12+
- Import is blocked when invalid regular expression was saved for issue -> [View Issue](https://github.com/aquality-automation/aquality-tracking/issues/103)
13+
314
## 0.3.10 (2020-05-17)
415

516
Features:

src/main/java/main/exceptions/AqualitySQLException.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ private static String getErrorMessage(SQLException exception){
2727
}
2828
return String.format("You have missed required parameter: %s", exception.getMessage());
2929
case "HY000":
30-
return "Your Data Base does not support UTF characters, please contact administrator to allow it.";
30+
return String.format("Data base error: %s", exception.getMessage());
3131
case "42S02":
3232
return "There is some missed table in your Data Base, please contact administrator.";
3333
case "S1000":

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

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main.model.db.imports;
22

33
import main.controllers.ControllerFactory;
4+
import main.controllers.Project.IssueController;
45
import main.exceptions.AqualityException;
56
import main.model.db.dao.project.*;
67
import main.model.dto.project.*;
@@ -11,9 +12,11 @@
1112
import java.util.*;
1213
import java.util.regex.Matcher;
1314
import java.util.regex.Pattern;
15+
import java.util.regex.PatternSyntaxException;
1416

1517
class BaseImporter {
1618
private ControllerFactory controllerFactory;
19+
private IssueController issueController;
1720
private String pattern;
1821
protected File file;
1922
private List<IssueDto> issues;
@@ -24,7 +27,8 @@ class BaseImporter {
2427
controllerFactory = new ControllerFactory(user);
2528
IssueDto issueTemplate = new IssueDto();
2629
issueTemplate.setProject_id(this.projectId);
27-
issues = controllerFactory.getHandler(issueTemplate).get(issueTemplate);
30+
issueController = controllerFactory.getHandler(issueTemplate);
31+
issues = issueController.get(issueTemplate);
2832
}
2933

3034
private List<TestResultDto> existingResults = new ArrayList<>();
@@ -150,19 +154,23 @@ private void createTests() throws AqualityException {
150154
List<TestDto> completedTests = new ArrayList<>();
151155

152156
for (TestDto test : this.tests) {
153-
test.setProject_id(this.projectId);
154-
TestDto existingTest = tryGetExistingTest(allTests, test);
155-
156-
if (existingTest != null) {
157-
test.setId(existingTest.getId());
158-
} else {
159-
allTests.add(test);
160-
}
157+
try {
158+
test.setProject_id(this.projectId);
159+
TestDto existingTest = tryGetExistingTest(allTests, test);
160+
161+
if (existingTest != null) {
162+
test.setId(existingTest.getId());
163+
} else {
164+
allTests.add(test);
165+
}
161166

162-
test.setId(controllerFactory.getHandler(test).create(test, false).getId());
163-
linkTestToSuite(test);
167+
test.setId(controllerFactory.getHandler(test).create(test, false).getId());
168+
linkTestToSuite(test);
164169

165-
completedTests.add(test);
170+
completedTests.add(test);
171+
} catch (AqualityException exception) {
172+
logToImport(String.format("Was not able to create or update test:\n%s\nCreation was failed with error:\n%s", test.getName(), exception.getMessage()));
173+
}
166174
}
167175
this.tests = completedTests;
168176

@@ -203,9 +211,10 @@ private void createResult(TestResultDto result, boolean update) throws AqualityE
203211
}
204212
controllerFactory.getHandler(result).create(result);
205213
} catch (AqualityException e){
206-
throw e;
207-
} catch (Exception e){
208-
throw new AqualityException("Failed on Result Creation for test id: " + result.getTest_id());
214+
logToImport(
215+
String.format("Failed on Result Creation for test id:\n%s\nCreation was failed with error:\n%s",
216+
result.getTest_id(),
217+
e.getMessage()));
209218
}
210219
}
211220

@@ -242,7 +251,10 @@ private void updateResultWithSimilarError(TestResultDto result) throws AqualityE
242251
}
243252
}
244253
} catch (Exception e){
245-
throw new AqualityException("Failed on update Result with similar error");
254+
logToImport(
255+
String.format("Failed on predicting fail reason for test id:\n%s\nPrediction was failed with error:\n%s",
256+
result.getTest_id(),
257+
e.getMessage()));
246258
}
247259
}
248260

@@ -260,9 +272,18 @@ private TestResultDto compareByRegexp(TestResultDto result, List<TestResultDto>
260272
private boolean tryFillByIssue(TestResultDto result, List<IssueDto> issues) {
261273
if (result.getFail_reason() != null) {
262274
for (IssueDto issue : issues) {
263-
if (issue.getExpression() != null && !issue.getStatus_id().equals(4) && RegexpUtil.match(result.getFail_reason(), issue.getExpression())) {
264-
result.setIssue_id(issue.getId());
265-
return true;
275+
try {
276+
if (issue.getExpression() != null && !issue.getStatus_id().equals(4) && RegexpUtil.match(result.getFail_reason(), issue.getExpression())) {
277+
result.setIssue_id(issue.getId());
278+
return true;
279+
}
280+
} catch (PatternSyntaxException regexException) {
281+
issue.setExpression("$blank");
282+
try {
283+
issueController.create(issue);
284+
} catch (AqualityException controllerException) {
285+
System.out.println(String.format("Was not able to fix invalid issue expression: id: %s", issue.getId()));
286+
}
266287
}
267288
}
268289
}

src/main/java/main/model/dto/project/TestResultStatDto.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ public class TestResultStatDto extends BaseDto {
2626
private String name;
2727
private String status;
2828
private String resolution;
29-
private String assignee;
30-
private String developer;
31-
private String comment;
29+
private String issue_assignee;
30+
private String developer_name;
31+
private String issue_id;
32+
private String issue_title;
3233
}

src/main/java/main/view/Audits/AuditAttachmentsServlet.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main.view.Audits;
22

33
import main.Session;
4+
import main.exceptions.AqualityException;
45
import main.model.dto.audit.AuditAttachmentDto;
56
import main.utils.FileUtils;
67
import main.utils.PathUtils;
@@ -35,7 +36,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp){
3536
resp.getWriter().write(mapper.serialize(attachments));
3637
} else {
3738
resp.setStatus(400);
38-
setErrorHeader(resp, "You have no specify Audit ID!");
39+
throw new AqualityException("You have no specify Audit ID!");
3940
}
4041
}catch (Exception e) {
4142
handleException(resp, e);
@@ -44,7 +45,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp){
4445

4546
@Override
4647
public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
47-
setPostResponseHeaders(resp);
48+
setDeleteResponseHeaders(resp);
4849
try {
4950
Session session = createSession(req);
5051
if (req.getParameterMap().containsKey("id")) {
@@ -62,9 +63,9 @@ public void doDelete(HttpServletRequest req, HttpServletResponse resp) {
6263
@Override
6364
public void doPost(HttpServletRequest req, HttpServletResponse resp) {
6465
try {
66+
setPostResponseHeaders(resp);
6567
req.setCharacterEncoding(StandardCharsets.UTF_8.toString());
6668
setEncoding(resp);
67-
setPostResponseHeaders(resp);
6869
Session session = createSession(req);
6970
if (req.getParameterMap().containsKey("audit_id")) {
7071
FileUtils fileUtils = new FileUtils();
@@ -80,7 +81,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp) {
8081
session.getAuditController().createMultiply(listOfAttachments);
8182
} else {
8283
resp.setStatus(400);
83-
setErrorHeader(resp, "You have no specify Audit ID!");
84+
throw new AqualityException("You have no specify Audit ID!");
8485
}
8586
} catch (Exception e) {
8687
handleException(resp, e);

src/main/java/main/view/Audits/AuditDownloadAttachmentServlet.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package main.view.Audits;
22

33
import main.Session;
4+
import main.exceptions.AqualityException;
45
import main.model.dto.audit.AuditAttachmentDto;
56
import main.view.BaseServlet;
67
import main.view.IGet;
@@ -28,7 +29,7 @@ public void doGet(HttpServletRequest req, HttpServletResponse resp){
2829
processResponse(resp, auditAttachments.get(0).getPath());
2930
} else {
3031
resp.setStatus(400);
31-
setErrorHeader(resp, "You have no specify Attachment ID");
32+
throw new AqualityException("You have no specify Attachment ID");
3233
}
3334
}catch (Exception e) {
3435
handleException(resp, e);

src/main/java/main/view/Audits/AuditServlet.java

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,49 @@
44
import main.model.dto.audit.AuditDto;
55
import main.view.BaseServlet;
66
import main.view.IDelete;
7+
import main.view.IGet;
8+
import main.view.IPost;
79

810
import javax.servlet.annotation.WebServlet;
911
import javax.servlet.http.HttpServletRequest;
1012
import javax.servlet.http.HttpServletResponse;
13+
import java.util.List;
1114

1215
@WebServlet("/audit")
13-
public class AuditServlet extends BaseServlet implements IDelete {
16+
public class AuditServlet extends BaseServlet implements IDelete, IGet, IPost {
17+
18+
@Override
19+
public void doGet(HttpServletRequest req, HttpServletResponse resp){
20+
setGetResponseHeaders(resp);
21+
setEncoding(resp);
22+
23+
try {
24+
Session session = createSession(req);
25+
AuditDto audit = new AuditDto();
26+
audit.getSearchTemplateFromRequestParameters(req);
27+
List<AuditDto> audits = session.getAuditController().get(audit);
28+
setJSONContentType(resp);
29+
resp.getWriter().write(mapper.serialize(audits));
30+
}catch (Exception e) {
31+
handleException(resp, e);
32+
}
33+
}
34+
35+
@Override
36+
public void doPost(HttpServletRequest req, HttpServletResponse resp){
37+
setPostResponseHeaders(resp);
38+
setEncoding(resp);
39+
try {
40+
Session session = createSession(req);
41+
String requestedJson = getRequestJson(req);
42+
AuditDto audit = mapper.mapObject(AuditDto.class, requestedJson);
43+
audit = session.getAuditController().create(audit);
44+
resp.getWriter().write(mapper.serialize(audit));
45+
setJSONContentType(resp);
46+
}catch (Exception e) {
47+
handleException(resp, e);
48+
}
49+
}
1450

1551
@Override
1652
public void doDelete(HttpServletRequest req, HttpServletResponse resp){

src/main/java/main/view/Audits/AuditorServlet.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp){
2424
String requestedJson = getRequestJson(req);
2525
List<AuditorDto> auditors = mapper.mapObjects(AuditorDto.class, requestedJson);
2626
for (AuditorDto auditorDto : auditors) {
27-
auditorDto.setAudit_id(Integer.parseInt(req.getParameter("audit_id")));
27+
auditorDto.setAudit_id(getIntegerQueryParameter(req, "audit_id"));
2828
}
2929
session.getAuditController().updateAuditors(auditors);
3030
}catch (Exception e) {
@@ -34,6 +34,6 @@ public void doPost(HttpServletRequest req, HttpServletResponse resp){
3434

3535
@Override
3636
public void doOptions(HttpServletRequest req, HttpServletResponse resp){
37-
setPostResponseHeaders(resp);
37+
setOptionsResponseHeaders(resp);
3838
}
3939
}

src/main/java/main/view/Audits/CreateAuditServlet.java

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

src/main/java/main/view/Audits/GetAuditsServlet.java

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

0 commit comments

Comments
 (0)