use of com.epam.ta.reportportal.entity.item.issue.IssueEntity in project service-api by reportportal.
the class ClusterItemDataProviderMockTest method getIssueEntity.
private IssueEntity getIssueEntity(Long index) {
final IssueEntity issueEntity = new IssueEntity();
issueEntity.setIssueId(index);
issueEntity.setIssueDescription("description " + index);
issueEntity.setAutoAnalyzed(false);
issueEntity.setIgnoreAnalyzer(false);
final IssueType issueType = getIssueType();
issueEntity.setIssueType(issueType);
return issueEntity;
}
use of com.epam.ta.reportportal.entity.item.issue.IssueEntity in project service-api by reportportal.
the class ClusterItemDataProviderMockTest method getTestItemResults.
private TestItemResults getTestItemResults(Long index) {
final TestItemResults testItemResults = new TestItemResults();
testItemResults.setDuration(0.01);
testItemResults.setEndTime(LocalDateTime.now(ZoneOffset.UTC));
testItemResults.setStatus(StatusEnum.FAILED);
final IssueEntity issueEntity = getIssueEntity(index);
testItemResults.setIssue(issueEntity);
final LinkedHashSet<Statistics> statistics = getStatistics();
testItemResults.setStatistics(statistics);
return testItemResults;
}
use of com.epam.ta.reportportal.entity.item.issue.IssueEntity in project service-api by reportportal.
the class FinishTestItemHandlerImpl method processChildItemResult.
private TestItemResults processChildItemResult(TestItem testItem, FinishTestItemRQ finishTestItemRQ, ReportPortalUser user, ReportPortalUser.ProjectDetails projectDetails, Launch launch) {
TestItemResults testItemResults = testItem.getItemResults();
StatusEnum actualStatus = fromValue(finishTestItemRQ.getStatus()).orElse(INTERRUPTED);
Optional<IssueEntity> resolvedIssue = resolveIssue(user, actualStatus, testItem, finishTestItemRQ.getIssue(), projectDetails.getProjectId());
if (testItemResults.getStatus() == IN_PROGRESS) {
testItemResults.setStatus(actualStatus);
resolvedIssue.ifPresent(issue -> updateItemIssue(testItemResults, issue));
ofNullable(testItem.getRetryOf()).ifPresentOrElse(retryOf -> {
}, () -> {
changeStatusHandler.changeParentStatus(testItem, projectDetails.getProjectId(), user);
changeStatusHandler.changeLaunchStatus(launch);
if (testItem.isHasRetries()) {
retryHandler.finishRetries(testItem.getItemId(), JStatusEnum.valueOf(actualStatus.name()), TO_LOCAL_DATE_TIME.apply(finishTestItemRQ.getEndTime()));
}
});
} else {
updateFinishedItem(testItemResults, actualStatus, resolvedIssue, testItem, user, projectDetails.getProjectId());
}
testItem.getAttributes().removeIf(attribute -> ATTRIBUTE_KEY_STATUS.equalsIgnoreCase(attribute.getKey()) && ATTRIBUTE_VALUE_INTERRUPTED.equalsIgnoreCase(attribute.getValue()));
return testItemResults;
}
use of com.epam.ta.reportportal.entity.item.issue.IssueEntity in project service-api by reportportal.
the class UpdateTestItemHandlerImpl method resetItemsIssue.
@Override
public void resetItemsIssue(List<Long> itemIds, Long projectId, ReportPortalUser user) {
itemIds.forEach(itemId -> {
TestItem item = testItemRepository.findById(itemId).orElseThrow(() -> new ReportPortalException(TEST_ITEM_NOT_FOUND, itemId));
TestItemActivityResource before = TO_ACTIVITY_RESOURCE.apply(item, projectId);
IssueType issueType = issueTypeHandler.defineIssueType(projectId, TestItemIssueGroup.TO_INVESTIGATE.getLocator());
IssueEntity issueEntity = new IssueEntityBuilder(issueEntityRepository.findById(itemId).orElseThrow(() -> new ReportPortalException(ErrorType.ISSUE_TYPE_NOT_FOUND, itemId))).addIssueType(issueType).addAutoAnalyzedFlag(false).get();
issueEntityRepository.save(issueEntity);
item.getItemResults().setIssue(issueEntity);
TestItemActivityResource after = TO_ACTIVITY_RESOURCE.apply(item, projectId);
if (!StringUtils.equalsIgnoreCase(before.getIssueTypeLongName(), after.getIssueTypeLongName())) {
ItemIssueTypeDefinedEvent event = new ItemIssueTypeDefinedEvent(before, after, user.getUserId(), user.getUsername());
messageBus.publishActivity(event);
}
});
}
use of com.epam.ta.reportportal.entity.item.issue.IssueEntity in project service-api by reportportal.
the class UpdateTestItemHandlerImpl method defineTestItemsIssues.
@Override
public List<Issue> defineTestItemsIssues(ReportPortalUser.ProjectDetails projectDetails, DefineIssueRQ defineIssue, ReportPortalUser user) {
Project project = projectRepository.findById(projectDetails.getProjectId()).orElseThrow(() -> new ReportPortalException(PROJECT_NOT_FOUND, projectDetails.getProjectId()));
List<String> errors = new ArrayList<>();
List<IssueDefinition> definitions = defineIssue.getIssues();
expect(CollectionUtils.isEmpty(definitions), equalTo(false)).verify(FAILED_TEST_ITEM_ISSUE_TYPE_DEFINITION);
List<Issue> updated = new ArrayList<>(defineIssue.getIssues().size());
List<ItemIssueTypeDefinedEvent> events = new ArrayList<>();
List<TestItem> itemsForIndexUpdate = new ArrayList<>();
List<Long> itemsForIndexRemove = new ArrayList<>();
definitions.forEach(issueDefinition -> {
try {
TestItem testItem = testItemRepository.findById(issueDefinition.getId()).orElseThrow(() -> new BusinessRuleViolationException(formattedSupplier("Cannot update issue type for test item '{}', cause it is not found.", issueDefinition.getId()).get()));
verifyTestItem(testItem, issueDefinition.getId());
TestItemActivityResource before = TO_ACTIVITY_RESOURCE.apply(testItem, projectDetails.getProjectId());
Issue issue = issueDefinition.getIssue();
IssueType issueType = issueTypeHandler.defineIssueType(projectDetails.getProjectId(), issue.getIssueType());
IssueEntity issueEntity = new IssueEntityBuilder(testItem.getItemResults().getIssue()).addIssueType(issueType).addDescription(issue.getComment()).addIgnoreFlag(issue.getIgnoreAnalyzer()).addAutoAnalyzedFlag(issue.getAutoAnalyzed()).get();
externalTicketHandler.updateLinking(user.getUsername(), issueEntity, issueDefinition.getIssue().getExternalSystemIssues());
testItem.getItemResults().setIssue(issueEntity);
issueEntity.setTestItemResults(testItem.getItemResults());
testItemRepository.save(testItem);
if (ITEM_CAN_BE_INDEXED.test(testItem)) {
itemsForIndexUpdate.add(testItem);
} else {
itemsForIndexRemove.add(testItem.getItemId());
}
updated.add(IssueConverter.TO_MODEL.apply(issueEntity));
TestItemActivityResource after = TO_ACTIVITY_RESOURCE.apply(testItem, projectDetails.getProjectId());
events.add(new ItemIssueTypeDefinedEvent(before, after, user.getUserId(), user.getUsername()));
} catch (BusinessRuleViolationException e) {
errors.add(e.getMessage());
}
});
expect(errors.isEmpty(), equalTo(TRUE)).verify(FAILED_TEST_ITEM_ISSUE_TYPE_DEFINITION, errors.toString());
logIndexerService.indexDefectsUpdate(project.getId(), AnalyzerUtils.getAnalyzerConfig(project), itemsForIndexUpdate);
logIndexerService.indexItemsRemoveAsync(project.getId(), itemsForIndexRemove);
events.forEach(messageBus::publishActivity);
return updated;
}
Aggregations