Search in sources :

Example 1 with ItemAttribute

use of com.epam.ta.reportportal.entity.ItemAttribute in project service-api by reportportal.

the class TestItemBuilderTest method addResultsTest.

@Test
void addResultsTest() {
    TestItem item = new TestItem();
    final LocalDateTime now = LocalDateTime.now().truncatedTo(ChronoUnit.MILLIS);
    item.setStartTime(now);
    final TestItemResults itemResults = new TestItemResults();
    itemResults.setEndTime(now.plusSeconds(120));
    item.setItemResults(itemResults);
    final ItemAttribute systemAttribute = new ItemAttribute("key", "val", true);
    item.setAttributes(Sets.newHashSet(new ItemAttribute("key", "val", false), systemAttribute));
    final TestItem resultItem = new TestItemBuilder(item).addTestItemResults(itemResults).addStatus(StatusEnum.PASSED).overwriteAttributes(Sets.newHashSet(new ItemAttributeResource("k", "v"))).get();
    assertEquals(120, resultItem.getItemResults().getDuration(), 0.1);
    assertEquals(StatusEnum.PASSED, resultItem.getItemResults().getStatus());
    assertThat(resultItem.getAttributes()).containsExactlyInAnyOrder(systemAttribute, new ItemAttribute("k", "v", false));
}
Also used : LocalDateTime(java.time.LocalDateTime) ItemAttributeResource(com.epam.ta.reportportal.ws.model.attribute.ItemAttributeResource) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute) TestItemResults(com.epam.ta.reportportal.entity.item.TestItemResults) TestItem(com.epam.ta.reportportal.entity.item.TestItem) Test(org.junit.jupiter.api.Test)

Example 2 with ItemAttribute

use of com.epam.ta.reportportal.entity.ItemAttribute in project service-api by reportportal.

the class AbstractFinishHierarchyHandler method finishItem.

private void finishItem(TestItem testItem, StatusEnum status, LocalDateTime endTime) {
    testItem.getItemResults().setStatus(status);
    testItem.getItemResults().setEndTime(endTime);
    ItemAttribute interruptedAttribute = new ItemAttribute(ATTRIBUTE_KEY_STATUS, ATTRIBUTE_VALUE_INTERRUPTED, false);
    interruptedAttribute.setTestItem(testItem);
    testItem.getAttributes().add(interruptedAttribute);
    if (testItem.isHasRetries()) {
        retryHandler.finishRetries(testItem.getItemId(), JStatusEnum.valueOf(status.name()), endTime);
    }
}
Also used : ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute)

Example 3 with ItemAttribute

use of com.epam.ta.reportportal.entity.ItemAttribute in project service-api by reportportal.

the class UpdateTestItemHandlerImplTest method shouldNotCreateInitialStatusAttribute.

@Test
void shouldNotCreateInitialStatusAttribute() {
    ReportPortalUser user = getRpUser("user", UserRole.ADMINISTRATOR, ProjectRole.PROJECT_MANAGER, 1L);
    UpdateTestItemRQ rq = new UpdateTestItemRQ();
    rq.setStatus("PASSED");
    long itemId = 1L;
    TestItem item = new TestItem();
    item.setItemId(itemId);
    item.setHasChildren(false);
    item.setType(TestItemTypeEnum.STEP);
    item.setAttributes(Sets.newHashSet(new ItemAttribute(INITIAL_STATUS_ATTRIBUTE_KEY, "passed", true)));
    TestItemResults itemResults = new TestItemResults();
    itemResults.setStatus(StatusEnum.FAILED);
    item.setItemResults(itemResults);
    Launch launch = new Launch();
    launch.setId(2L);
    item.setLaunchId(launch.getId());
    when(testItemService.getEffectiveLaunch(item)).thenReturn(launch);
    when(itemRepository.findById(itemId)).thenReturn(Optional.of(item));
    doNothing().when(messageBus).publishActivity(any());
    when(statusChangingStrategyMapping.get(StatusEnum.PASSED)).thenReturn(statusChangingStrategy);
    doNothing().when(statusChangingStrategy).changeStatus(item, StatusEnum.PASSED, user);
    handler.updateTestItem(extractProjectDetails(user, "test_project"), itemId, rq, user);
    assertTrue(item.getAttributes().stream().anyMatch(attribute -> INITIAL_STATUS_ATTRIBUTE_KEY.equalsIgnoreCase(attribute.getKey()) && StatusEnum.PASSED.getExecutionCounterField().equalsIgnoreCase("passed")));
}
Also used : TestItemTypeEnum(com.epam.ta.reportportal.entity.enums.TestItemTypeEnum) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) StatusEnum(com.epam.ta.reportportal.entity.enums.StatusEnum) OperationCompletionRS(com.epam.ta.reportportal.ws.model.OperationCompletionRS) TestItemService(com.epam.ta.reportportal.core.item.TestItemService) TestItem(com.epam.ta.reportportal.entity.item.TestItem) INITIAL_STATUS_ATTRIBUTE_KEY(com.epam.ta.reportportal.core.item.impl.UpdateTestItemHandlerImpl.INITIAL_STATUS_ATTRIBUTE_KEY) Mock(org.mockito.Mock) ErrorType(com.epam.ta.reportportal.ws.model.ErrorType) DefineIssueRQ(com.epam.ta.reportportal.ws.model.issue.DefineIssueRQ) MessageBus(com.epam.ta.reportportal.core.events.MessageBus) StatusChangingStrategy(com.epam.ta.reportportal.core.item.impl.status.StatusChangingStrategy) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute) ReportPortalUser(com.epam.ta.reportportal.commons.ReportPortalUser) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) UpdateTestItemRQ(com.epam.ta.reportportal.ws.model.item.UpdateTestItemRQ) UserRole(com.epam.ta.reportportal.entity.user.UserRole) Map(java.util.Map) TestProjectExtractor.extractProjectDetails(com.epam.ta.reportportal.util.TestProjectExtractor.extractProjectDetails) TestItemRepository(com.epam.ta.reportportal.dao.TestItemRepository) InjectMocks(org.mockito.InjectMocks) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) Launch(com.epam.ta.reportportal.entity.launch.Launch) User(com.epam.ta.reportportal.entity.user.User) ReportPortalException(com.epam.ta.reportportal.exception.ReportPortalException) Sets(com.google.common.collect.Sets) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) ProjectRole(com.epam.ta.reportportal.entity.project.ProjectRole) ProjectRepository(com.epam.ta.reportportal.dao.ProjectRepository) TestItemResults(com.epam.ta.reportportal.entity.item.TestItemResults) Assertions(org.junit.jupiter.api.Assertions) Optional(java.util.Optional) ReportPortalUserUtil.getRpUser(com.epam.ta.reportportal.ReportPortalUserUtil.getRpUser) UpdateTestItemRQ(com.epam.ta.reportportal.ws.model.item.UpdateTestItemRQ) ReportPortalUser(com.epam.ta.reportportal.commons.ReportPortalUser) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute) TestItemResults(com.epam.ta.reportportal.entity.item.TestItemResults) Launch(com.epam.ta.reportportal.entity.launch.Launch) TestItem(com.epam.ta.reportportal.entity.item.TestItem) Test(org.junit.jupiter.api.Test)

Example 4 with ItemAttribute

use of com.epam.ta.reportportal.entity.ItemAttribute in project service-api by reportportal.

the class UpdateTestItemHandlerImpl method checkInitialStatusAttribute.

private void checkInitialStatusAttribute(TestItem item, UpdateTestItemRQ request) {
    Runnable addInitialStatusAttribute = () -> {
        ItemAttribute initialStatusAttribute = new ItemAttribute(INITIAL_STATUS_ATTRIBUTE_KEY, item.getItemResults().getStatus().getExecutionCounterField(), true);
        initialStatusAttribute.setTestItem(item);
        item.getAttributes().add(initialStatusAttribute);
    };
    Consumer<ItemAttribute> removeManuallyStatusAttributeIfSameAsInitial = statusAttribute -> extractAttributeResource(request.getAttributes(), MANUALLY_CHANGED_STATUS_ATTRIBUTE_KEY).filter(it -> it.getValue().equalsIgnoreCase(statusAttribute.getValue())).ifPresent(it -> request.getAttributes().remove(it));
    extractAttribute(item.getAttributes(), INITIAL_STATUS_ATTRIBUTE_KEY).ifPresentOrElse(removeManuallyStatusAttributeIfSameAsInitial, addInitialStatusAttribute);
}
Also used : StatusEnum(com.epam.ta.reportportal.entity.enums.StatusEnum) IssueEntity(com.epam.ta.reportportal.entity.item.issue.IssueEntity) OperationCompletionRS(com.epam.ta.reportportal.ws.model.OperationCompletionRS) TestItemService(com.epam.ta.reportportal.core.item.TestItemService) LogIndexerService(com.epam.ta.reportportal.core.analyzer.auto.impl.LogIndexerService) Autowired(org.springframework.beans.factory.annotation.Autowired) DefineIssueRQ(com.epam.ta.reportportal.ws.model.issue.DefineIssueRQ) UnlinkExternalIssueRQ(com.epam.ta.reportportal.ws.model.item.UnlinkExternalIssueRQ) MessageBus(com.epam.ta.reportportal.core.events.MessageBus) StringUtils(org.apache.commons.lang3.StringUtils) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute) Predicates(com.epam.ta.reportportal.commons.Predicates) TestItemRepository(com.epam.ta.reportportal.dao.TestItemRepository) Suppliers.formattedSupplier(com.epam.ta.reportportal.commons.validation.Suppliers.formattedSupplier) TestItemActivityResource(com.epam.ta.reportportal.ws.model.activity.TestItemActivityResource) Launch(com.epam.ta.reportportal.entity.launch.Launch) TestItemStatusChangedEvent(com.epam.ta.reportportal.core.events.activity.TestItemStatusChangedEvent) Predicate(java.util.function.Predicate) BusinessRule.expect(com.epam.ta.reportportal.commons.validation.BusinessRule.expect) IssueConverter(com.epam.ta.reportportal.ws.converter.converters.IssueConverter) ReportPortalException(com.epam.ta.reportportal.exception.ReportPortalException) TestItemBuilder(com.epam.ta.reportportal.ws.converter.builders.TestItemBuilder) Collectors(java.util.stream.Collectors) LinkExternalIssueRQ(com.epam.ta.reportportal.ws.model.item.LinkExternalIssueRQ) AnalyzerUtils(com.epam.ta.reportportal.core.analyzer.auto.impl.AnalyzerUtils) ProjectRole(com.epam.ta.reportportal.entity.project.ProjectRole) Stream(java.util.stream.Stream) ITEM_CAN_BE_INDEXED(com.epam.ta.reportportal.util.Predicates.ITEM_CAN_BE_INDEXED) IssueEntityRepository(com.epam.ta.reportportal.dao.IssueEntityRepository) BusinessRuleViolationException(com.epam.ta.reportportal.commons.validation.BusinessRuleViolationException) UpdateTestItemHandler(com.epam.ta.reportportal.core.item.UpdateTestItemHandler) ItemInfoUtils.extractAttributeResource(com.epam.ta.reportportal.util.ItemInfoUtils.extractAttributeResource) TRUE(java.lang.Boolean.TRUE) TestItemTypeEnum(com.epam.ta.reportportal.entity.enums.TestItemTypeEnum) java.util(java.util) Project(com.epam.ta.reportportal.entity.project.Project) Issue(com.epam.ta.reportportal.ws.model.issue.Issue) TestItem(com.epam.ta.reportportal.entity.item.TestItem) ItemInfoUtils.extractAttribute(com.epam.ta.reportportal.util.ItemInfoUtils.extractAttribute) BulkInfoUpdateRQ(com.epam.ta.reportportal.ws.model.BulkInfoUpdateRQ) ErrorType(com.epam.ta.reportportal.ws.model.ErrorType) StatusChangingStrategy(com.epam.ta.reportportal.core.item.impl.status.StatusChangingStrategy) Function(java.util.function.Function) ExternalTicketHandler(com.epam.ta.reportportal.core.item.ExternalTicketHandler) ItemIssueTypeDefinedEvent(com.epam.ta.reportportal.core.events.activity.ItemIssueTypeDefinedEvent) ReportPortalUser(com.epam.ta.reportportal.commons.ReportPortalUser) CollectionUtils(org.apache.commons.collections.CollectionUtils) UpdateTestItemRQ(com.epam.ta.reportportal.ws.model.item.UpdateTestItemRQ) Service(org.springframework.stereotype.Service) UserRole(com.epam.ta.reportportal.entity.user.UserRole) IssueDefinition(com.epam.ta.reportportal.ws.model.issue.IssueDefinition) IssueType(com.epam.ta.reportportal.entity.item.issue.IssueType) ActivityAction(com.epam.ta.reportportal.entity.activity.ActivityAction) FALSE(java.lang.Boolean.FALSE) ExternalIssueRQ(com.epam.ta.reportportal.ws.model.item.ExternalIssueRQ) TestItemIssueGroup(com.epam.ta.reportportal.entity.enums.TestItemIssueGroup) TO_ACTIVITY_RESOURCE(com.epam.ta.reportportal.ws.converter.converters.TestItemConverter.TO_ACTIVITY_RESOURCE) Consumer(java.util.function.Consumer) Collectors.toList(java.util.stream.Collectors.toList) IssueEntityBuilder(com.epam.ta.reportportal.ws.converter.builders.IssueEntityBuilder) ProjectRepository(com.epam.ta.reportportal.dao.ProjectRepository) LinkTicketEvent(com.epam.ta.reportportal.core.events.activity.LinkTicketEvent) ItemAttributeConverter(com.epam.ta.reportportal.ws.converter.converters.ItemAttributeConverter) ItemInfoUtils(com.epam.ta.reportportal.util.ItemInfoUtils) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute)

Example 5 with ItemAttribute

use of com.epam.ta.reportportal.entity.ItemAttribute in project service-api by reportportal.

the class LaunchResourceAttributeUpdaterTest method shouldUpdate.

@Test
void shouldUpdate() {
    final LaunchResource launchResource = new LaunchResource();
    final List<ItemAttribute> attributes = List.of(new ItemAttribute("k1", "v1", false), new ItemAttribute("k2", "v2", false));
    launchResourceAttributeUpdater.handle(launchResource, attributes);
    final Set<ItemAttributeResource> resourceAttributes = launchResource.getAttributes();
    Assertions.assertEquals(2, resourceAttributes.size());
    final Map<String, List<ItemAttributeResource>> mapping = resourceAttributes.stream().collect(groupingBy(ItemAttributeResource::getKey));
    final ItemAttributeResource firstResource = mapping.get("k1").get(0);
    final ItemAttributeResource secondResource = mapping.get("k2").get(0);
    final ItemAttribute firstAttribute = attributes.get(0);
    final ItemAttribute secondAttribute = attributes.get(1);
    shouldEqual(firstAttribute, firstResource);
    shouldEqual(secondAttribute, secondResource);
}
Also used : ItemAttributeResource(com.epam.ta.reportportal.ws.model.attribute.ItemAttributeResource) List(java.util.List) ItemAttribute(com.epam.ta.reportportal.entity.ItemAttribute) LaunchResource(com.epam.ta.reportportal.ws.model.launch.LaunchResource) Test(org.junit.jupiter.api.Test)

Aggregations

ItemAttribute (com.epam.ta.reportportal.entity.ItemAttribute)24 Test (org.junit.jupiter.api.Test)16 Launch (com.epam.ta.reportportal.entity.launch.Launch)9 TestItem (com.epam.ta.reportportal.entity.item.TestItem)7 ItemAttributeResource (com.epam.ta.reportportal.ws.model.attribute.ItemAttributeResource)5 TestItemResults (com.epam.ta.reportportal.entity.item.TestItemResults)4 ReportPortalUser (com.epam.ta.reportportal.commons.ReportPortalUser)3 Parameter (com.epam.ta.reportportal.entity.item.Parameter)3 ReportPortalException (com.epam.ta.reportportal.exception.ReportPortalException)3 MessageBus (com.epam.ta.reportportal.core.events.MessageBus)2 TestItemService (com.epam.ta.reportportal.core.item.TestItemService)2 StatusChangingStrategy (com.epam.ta.reportportal.core.item.impl.status.StatusChangingStrategy)2 ProjectRepository (com.epam.ta.reportportal.dao.ProjectRepository)2 TestItemRepository (com.epam.ta.reportportal.dao.TestItemRepository)2 StatusEnum (com.epam.ta.reportportal.entity.enums.StatusEnum)2 TestItemIssueGroup (com.epam.ta.reportportal.entity.enums.TestItemIssueGroup)2 TestItemTypeEnum (com.epam.ta.reportportal.entity.enums.TestItemTypeEnum)2 IssueEntity (com.epam.ta.reportportal.entity.item.issue.IssueEntity)2 IssueType (com.epam.ta.reportportal.entity.item.issue.IssueType)2 ProjectRole (com.epam.ta.reportportal.entity.project.ProjectRole)2