Search in sources :

Example 26 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-core by entando.

the class PageService method getComponentUsageDetails.

@Override
public PagedMetadata<ComponentUsageEntity> getComponentUsageDetails(String pageCode, RestListRequest restListRequest) {
    PageDto pageDto = this.getPage(pageCode, IPageService.STATUS_DRAFT);
    List<PageDto> childrenPageDtoList = this.getPages(pageCode);
    List<ComponentUsageEntity> componentUsageEntityList = childrenPageDtoList.stream().map(childPageDto -> new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, childPageDto.getCode(), childPageDto.getStatus())).collect(Collectors.toList());
    if (pageDto.getStatus().equals(IPageService.STATUS_ONLINE)) {
        componentUsageEntityList.add(new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, pageDto.getCode(), pageDto.getStatus()));
    }
    return pagedMetadataMapper.getPagedResult(restListRequest, componentUsageEntityList);
}
Also used : ResourceNotFoundException(org.entando.entando.aps.system.exception.ResourceNotFoundException) Arrays(java.util.Arrays) BeanComparator(org.apache.commons.beanutils.BeanComparator) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) StringUtils(org.apache.commons.lang3.StringUtils) Group(com.agiletec.aps.system.services.group.Group) IPage(com.agiletec.aps.system.services.page.IPage) PageConfigurationDto(org.entando.entando.aps.system.services.page.model.PageConfigurationDto) FieldSearchFilter(com.agiletec.aps.system.common.FieldSearchFilter) PageDto(org.entando.entando.aps.system.services.page.model.PageDto) PageSearchDto(org.entando.entando.aps.system.services.page.model.PageSearchDto) IGroupManager(com.agiletec.aps.system.services.group.IGroupManager) WidgetValidatorFactory(org.entando.entando.aps.system.services.widgettype.validators.WidgetValidatorFactory) Widget(com.agiletec.aps.system.services.page.Widget) Map(java.util.Map) PagePositionRequest(org.entando.entando.web.page.model.PagePositionRequest) PageDtoBuilder(org.entando.entando.aps.system.services.page.model.PageDtoBuilder) ValidationGenericException(org.entando.entando.web.common.exceptions.ValidationGenericException) JsonNode(com.fasterxml.jackson.databind.JsonNode) PageModelUtilizer(com.agiletec.aps.system.services.pagemodel.PageModelUtilizer) PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) ApsSystemException(com.agiletec.aps.system.exception.ApsSystemException) DataBinder(org.springframework.validation.DataBinder) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) Collectors(java.util.stream.Collectors) PagesStatus(com.agiletec.aps.system.services.page.PagesStatus) PageMetadata(com.agiletec.aps.system.services.page.PageMetadata) List(java.util.List) RestListRequest(org.entando.entando.web.common.model.RestListRequest) GroupUtilizer(com.agiletec.aps.system.services.group.GroupUtilizer) SearcherDaoPaginatedResult(com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) Optional(java.util.Optional) ValidationConflictException(org.entando.entando.web.common.exceptions.ValidationConflictException) WidgetType(org.entando.entando.aps.system.services.widgettype.WidgetType) IPageModelManager(com.agiletec.aps.system.services.pagemodel.IPageModelManager) PageUtils(org.entando.entando.aps.util.PageUtils) WidgetConfigurationDto(org.entando.entando.aps.system.services.page.model.WidgetConfigurationDto) ApplicationContextAware(org.springframework.context.ApplicationContextAware) IDtoBuilder(org.entando.entando.aps.system.services.IDtoBuilder) BeanUtils(org.springframework.beans.BeanUtils) JsonPatchService(org.entando.entando.aps.system.services.jsonpatch.JsonPatchService) Page(com.agiletec.aps.system.services.page.Page) HashMap(java.util.HashMap) BindingResult(org.springframework.validation.BindingResult) ApsProperties(com.agiletec.aps.util.ApsProperties) IWidgetTypeManager(org.entando.entando.aps.system.services.widgettype.IWidgetTypeManager) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) PageUtilizer(com.agiletec.aps.system.services.page.PageUtilizer) ArrayList(java.util.ArrayList) RestServerError(org.entando.entando.aps.system.exception.RestServerError) IPageManager(com.agiletec.aps.system.services.page.IPageManager) IManager(com.agiletec.aps.system.common.IManager) PagedMetadataMapper(org.entando.entando.web.common.assembler.PagedMetadataMapper) WidgetConfigurationRequest(org.entando.entando.web.page.model.WidgetConfigurationRequest) BeanPropertyBindingResult(org.springframework.validation.BeanPropertyBindingResult) GroupServiceUtilizer(org.entando.entando.aps.system.services.group.GroupServiceUtilizer) PageSearchMapper(org.entando.entando.web.common.assembler.PageSearchMapper) Logger(org.slf4j.Logger) Iterator(java.util.Iterator) PageRequest(org.entando.entando.web.page.model.PageRequest) PagesStatusDto(org.entando.entando.aps.system.services.page.model.PagesStatusDto) BeansException(org.springframework.beans.BeansException) PageValidator(org.entando.entando.web.page.validator.PageValidator) ApplicationContext(org.springframework.context.ApplicationContext) PageModelServiceUtilizer(org.entando.entando.aps.system.services.pagemodel.PageModelServiceUtilizer) WidgetProcessorFactory(org.entando.entando.aps.system.services.widgettype.validators.WidgetProcessorFactory) Collections(java.util.Collections) PageDto(org.entando.entando.aps.system.services.page.model.PageDto) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 27 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-core by entando.

the class PageModelAssertionHelper method assertUsageDetails.

/**
 * does assertions on the received PagedMetadata basing on the default PageMockHelper mocked data
 * @param usageDetails
 */
public static void assertUsageDetails(PagedMetadata<ComponentUsageEntity> usageDetails) {
    assertEquals(1, usageDetails.getTotalItems());
    assertEquals(1, usageDetails.getBody().size());
    assertEquals(1, usageDetails.getPage());
    ComponentUsageEntity expected = new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_CODE, IPageService.STATUS_ONLINE);
    ComponentUsageEntityAssertionHelper.assertComponentUsageEntity(expected, usageDetails.getBody().get(0));
}
Also used : ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 28 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-core by entando.

the class WidgetAssertionHelper method assertUsageDetails.

/**
 * does assertions on the received PagedMetadata basing on the default WidgetMockHelper mocked data
 * @param usageDetails
 */
public static void assertUsageDetails(PagedMetadata<ComponentUsageEntity> usageDetails) {
    List<ComponentUsageEntity> usageEntityList = Arrays.asList(new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_CODE, IPageService.STATUS_ONLINE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_CODE, IPageService.STATUS_DRAFT));
    assertUsageDetails(usageDetails, usageEntityList, usageEntityList.size(), 1);
}
Also used : ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 29 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-engine by entando.

the class PageServiceTest method mockPagedMetadata.

/**
 * init mock for a multipaged request
 */
private void mockPagedMetadata(Page page, PageDto pageDto, String[] utilizers, int currPage, int lastPage, int pageSize, int totalSize) {
    try {
        when(pageManager.getDraftPage(page.getCode())).thenReturn(page);
        when(pageTokenManager.encrypt(page.getCode())).thenReturn(PageMockHelper.TOKEN);
        Mockito.lenient().when(dtoBuilder.convert(any(IPage.class))).thenReturn(pageDto);
        when(applicationContext.getBeanNamesForType((Class<?>) any())).thenReturn(PageMockHelper.UTILIZERS);
        when(applicationContext.getBean(anyString())).thenReturn(pageUtilizer);
        when(pageUtilizer.getPageUtilizers(page.getCode())).thenReturn(Arrays.asList(PageMockHelper.UTILIZERS));
        when(pageUtilizer.getName()).thenReturn(PageMockHelper.UTILIZER_1).thenReturn(PageMockHelper.UTILIZER_2);
        PageSearchRequest pageSearchRequest = new PageSearchRequest(PageMockHelper.PAGE_CODE);
        pageSearchRequest.setPageSize(pageSize);
        PageSearchDto pageSearchDto = new PageSearchDto(pageSearchRequest, Collections.singletonList(pageDto));
        pageSearchDto.setPageSize(pageSize);
        pageSearchDto.imposeLimits();
        List<ComponentUsageEntity> componentUsageEntityList = Arrays.stream(utilizers).map(child -> new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, child)).collect(Collectors.toList());
        if (pageDto.getStatus().equals(IPageService.STATUS_ONLINE) && currPage == lastPage) {
            componentUsageEntityList.add(new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, page.getCode()));
        }
        PagedMetadata pagedMetadata = new PagedMetadata(pageSearchRequest, componentUsageEntityList, totalSize);
        pagedMetadata.setPageSize(pageSize);
        pagedMetadata.setPage(currPage);
        pagedMetadata.imposeLimits();
        when(pagedMetadataMapper.getPagedResult(any(), any())).thenReturn(pagedMetadata);
    } catch (Exception e) {
        Assertions.fail("Mock Exception");
    }
}
Also used : PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) IntStream(java.util.stream.IntStream) ResourceNotFoundException(org.entando.entando.aps.system.exception.ResourceNotFoundException) BeforeEach(org.junit.jupiter.api.BeforeEach) Arrays(java.util.Arrays) Page(com.agiletec.aps.system.services.page.Page) Mock(org.mockito.Mock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) PageUtilizer(com.agiletec.aps.system.services.page.PageUtilizer) Group(com.agiletec.aps.system.services.group.Group) ArrayList(java.util.ArrayList) PageAssertionHelper(org.entando.entando.aps.system.services.assertionhelper.PageAssertionHelper) HashSet(java.util.HashSet) IPage(com.agiletec.aps.system.services.page.IPage) BiPredicate(java.util.function.BiPredicate) PageDto(org.entando.entando.aps.system.services.page.model.PageDto) PageSearchDto(org.entando.entando.aps.system.services.page.model.PageSearchDto) Pair(org.apache.commons.lang3.tuple.Pair) ExtendWith(org.junit.jupiter.api.extension.ExtendWith) IGroupManager(com.agiletec.aps.system.services.group.IGroupManager) IPageManager(com.agiletec.aps.system.services.page.IPageManager) PageMockHelper(org.entando.entando.aps.system.services.mockhelper.PageMockHelper) PagedMetadataMapper(org.entando.entando.web.common.assembler.PagedMetadataMapper) Nullable(org.springframework.lang.Nullable) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) PageSearchMapper(org.entando.entando.web.common.assembler.PageSearchMapper) InjectMocks(org.mockito.InjectMocks) MockitoExtension(org.mockito.junit.jupiter.MockitoExtension) PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) PageRequest(org.entando.entando.web.page.model.PageRequest) Set(java.util.Set) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) Mockito.when(org.mockito.Mockito.when) Collectors(java.util.stream.Collectors) ApplicationContext(org.springframework.context.ApplicationContext) Test(org.junit.jupiter.api.Test) Mockito(org.mockito.Mockito) List(java.util.List) Assertions.fail(org.assertj.core.api.Assertions.fail) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Assertions(org.junit.jupiter.api.Assertions) NonNull(org.springframework.lang.NonNull) IPageModelManager(com.agiletec.aps.system.services.pagemodel.IPageModelManager) Collections(java.util.Collections) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) IDtoBuilder(org.entando.entando.aps.system.services.IDtoBuilder) IPage(com.agiletec.aps.system.services.page.IPage) PageSearchDto(org.entando.entando.aps.system.services.page.model.PageSearchDto) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) ResourceNotFoundException(org.entando.entando.aps.system.exception.ResourceNotFoundException)

Example 30 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-engine by entando.

the class WidgetServiceTest method getWidgetUsageDetailsWithPagination.

@Test
void getWidgetUsageDetailsWithPagination() throws Exception {
    int pageSize = 3;
    // creates paged data
    List<Integer> pageNumList = Arrays.asList(1, 2);
    Map<Integer, List<ComponentUsageEntity>> usageEntityMap = new HashMap<>();
    usageEntityMap.put(pageNumList.get(0), Arrays.asList(new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_MISSION_CODE, IPageService.STATUS_ONLINE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_CODE, IPageService.STATUS_ONLINE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_MISSION_CODE, IPageService.STATUS_DRAFT)));
    usageEntityMap.put(pageNumList.get(1), Arrays.asList(new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, PageMockHelper.PAGE_CODE, IPageService.STATUS_DRAFT)));
    PageSearchRequest pageSearchRequest = new PageSearchRequest(WidgetMockHelper.WIDGET_1_CODE);
    pageSearchRequest.setPageSize(pageSize);
    // does assertions
    IntStream.range(0, pageNumList.size()).forEach(i -> {
        mockPagedMetadata(Arrays.asList(PageMockHelper.PAGE_MISSION_CODE, PageMockHelper.PAGE_CODE), pageNumList.get(i), pageNumList.get(pageNumList.size() - 1), pageSize, 4);
        pageSearchRequest.setPage(pageNumList.get(i));
        PagedMetadata<ComponentUsageEntity> pageUsageDetails = widgetService.getComponentUsageDetails(WIDGET_1_CODE, pageSearchRequest);
        WidgetAssertionHelper.assertUsageDetails(pageUsageDetails, usageEntityMap.get(i + 1), 4, pageNumList.get(i));
    });
}
Also used : PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) ImmutableList(com.google.common.collect.ImmutableList) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) Test(org.junit.jupiter.api.Test)

Aggregations

ComponentUsageEntity (org.entando.entando.web.component.ComponentUsageEntity)36 PageSearchRequest (org.entando.entando.web.page.model.PageSearchRequest)23 IPage (com.agiletec.aps.system.services.page.IPage)13 Collectors (java.util.stream.Collectors)12 PagedMetadataMapper (org.entando.entando.web.common.assembler.PagedMetadataMapper)12 PagedMetadata (org.entando.entando.web.common.model.PagedMetadata)12 Page (com.agiletec.aps.system.services.page.Page)11 PageDto (org.entando.entando.aps.system.services.page.model.PageDto)11 RestListRequest (org.entando.entando.web.common.model.RestListRequest)10 Test (org.junit.jupiter.api.Test)10 ResourceNotFoundException (org.entando.entando.aps.system.exception.ResourceNotFoundException)9 Test (org.junit.Test)9 IGroupManager (com.agiletec.aps.system.services.group.IGroupManager)8 IPageManager (com.agiletec.aps.system.services.page.IPageManager)8 ValidationGenericException (org.entando.entando.web.common.exceptions.ValidationGenericException)8 IDtoBuilder (org.entando.entando.aps.system.services.IDtoBuilder)7 Group (com.agiletec.aps.system.services.group.Group)6 List (java.util.List)6 PageSearchDto (org.entando.entando.aps.system.services.page.model.PageSearchDto)6 SearcherDaoPaginatedResult (com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult)5