Search in sources :

Example 6 with ComponentUsageEntity

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

the class GuiFragmentAssertionHelper method assertUsageDetails.

/**
 * does assertions on the received PagedMetadata basing on the default FragmentMockHelper mocked data
 * @param usageDetails
 */
public static void assertUsageDetails(PagedMetadata<ComponentUsageEntity> usageDetails) {
    int expectedTotalItems = 5;
    assertEquals(expectedTotalItems, usageDetails.getTotalItems());
    assertEquals(expectedTotalItems, usageDetails.getBody().size());
    assertEquals(1, usageDetails.getPage());
    List<ComponentUsageEntity> usageEntityList = Arrays.asList(new ComponentUsageEntity(ComponentUsageEntity.TYPE_WIDGET, WidgetMockHelper.WIDGET_1_CODE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_FRAGMENT, FragmentMockHelper.FRAGMENT_REF_1_CODE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_FRAGMENT, FragmentMockHelper.FRAGMENT_REF_2_CODE), new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE_TEMPLATE, PageMockHelper.PAGE_MODEL_REF_CODE_1), new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE_TEMPLATE, PageMockHelper.PAGE_MODEL_REF_CODE_2));
    IntStream.range(0, usageDetails.getBody().size()).forEach(i -> ComponentUsageEntityAssertionHelper.assertComponentUsageEntity(usageEntityList.get(i), usageDetails.getBody().get(i)));
}
Also used : ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 7 with ComponentUsageEntity

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

the class WidgetService method getComponentUsageDetails.

@Override
public PagedMetadata<ComponentUsageEntity> getComponentUsageDetails(String componentCode, RestListRequest restListRequest) {
    WidgetInfoDto widgetInfoDto = this.getWidgetInfo(componentCode);
    List<ComponentUsageEntity> totalReferenced = widgetInfoDto.getPublishedUtilizers().stream().map(widgetDetail -> new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, widgetDetail.getPageCode(), IPageService.STATUS_ONLINE)).collect(Collectors.toList());
    List<ComponentUsageEntity> draftReferenced = widgetInfoDto.getDraftUtilizers().stream().map(widgetDetail -> new ComponentUsageEntity(ComponentUsageEntity.TYPE_PAGE, widgetDetail.getPageCode(), IPageService.STATUS_DRAFT)).collect(Collectors.toList());
    totalReferenced.addAll(draftReferenced);
    return pagedMetadataMapper.getPagedResult(restListRequest, totalReferenced);
}
Also used : ResourceNotFoundException(org.entando.entando.aps.system.exception.ResourceNotFoundException) ServletContextAware(org.springframework.web.context.ServletContextAware) Arrays(java.util.Arrays) BeanComparator(org.apache.commons.beanutils.BeanComparator) GuiFragment(org.entando.entando.aps.system.services.guifragment.GuiFragment) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) ApsProperties(com.agiletec.aps.util.ApsProperties) StringUtils(org.apache.commons.lang3.StringUtils) IPage(com.agiletec.aps.system.services.page.IPage) IPageService(org.entando.entando.aps.system.services.page.IPageService) FieldSearchFilter(com.agiletec.aps.system.common.FieldSearchFilter) PageDto(org.entando.entando.aps.system.services.page.model.PageDto) RestServerError(org.entando.entando.aps.system.exception.RestServerError) IGroupManager(com.agiletec.aps.system.services.group.IGroupManager) IPageManager(com.agiletec.aps.system.services.page.IPageManager) WidgetInfoDto(org.entando.entando.aps.system.services.widgettype.model.WidgetInfoDto) Widget(com.agiletec.aps.system.services.page.Widget) Service(org.springframework.stereotype.Service) IManager(com.agiletec.aps.system.common.IManager) PagedMetadataMapper(org.entando.entando.web.common.assembler.PagedMetadataMapper) ValidationGenericException(org.entando.entando.web.common.exceptions.ValidationGenericException) BeanPropertyBindingResult(org.springframework.validation.BeanPropertyBindingResult) GroupServiceUtilizer(org.entando.entando.aps.system.services.group.GroupServiceUtilizer) WidgetRequest(org.entando.entando.web.widget.model.WidgetRequest) Logger(org.slf4j.Logger) WidgetDto(org.entando.entando.aps.system.services.widgettype.model.WidgetDto) PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) ApsSystemException(com.agiletec.aps.system.exception.ApsSystemException) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) JsonProcessingException(com.fasterxml.jackson.core.JsonProcessingException) Collectors(java.util.stream.Collectors) IGuiFragmentManager(org.entando.entando.aps.system.services.guifragment.IGuiFragmentManager) WidgetDetails(org.entando.entando.aps.system.services.widgettype.model.WidgetDetails) 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) WidgetValidator(org.entando.entando.web.widget.validator.WidgetValidator) ServletContext(javax.servlet.ServletContext) IDtoBuilder(org.entando.entando.aps.system.services.IDtoBuilder) BeanUtils(org.springframework.beans.BeanUtils) WidgetInfoDto(org.entando.entando.aps.system.services.widgettype.model.WidgetInfoDto) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 8 with ComponentUsageEntity

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

the class WidgetServiceTest method getWidgetUsageDetailsWithPagination.

@Test
public 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.Test)

Example 9 with ComponentUsageEntity

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

the class PageServiceTest method testPagedPageUsageDetails.

/**
 * contains generic code to test a single paged page usage details
 *
 * @param pageDto
 * @throws Exception
 */
private void testPagedPageUsageDetails(PageDto pageDto) {
    Page page = PageMockHelper.mockTestPage(PageMockHelper.PAGE_CODE);
    int pageSize = 3;
    int totalSize = PageMockHelper.UTILIZERS.length + (pageDto.getStatus().equals(IPageService.STATUS_ONLINE) ? 1 : 0);
    mockForSinglePage(page, pageDto, PageMockHelper.UTILIZERS);
    PageSearchRequest pageSearchRequest = new PageSearchRequest(PageMockHelper.PAGE_CODE);
    pageSearchRequest.setPageSize(pageSize);
    // creates paged data
    List<Integer> pageList = Arrays.asList(1, 2);
    String[][] utilizers = { { PageMockHelper.UTILIZER_1, PageMockHelper.UTILIZER_2, PageMockHelper.UTILIZER_3 }, { PageMockHelper.UTILIZER_4, PageMockHelper.UTILIZER_5 } };
    // does assertions
    IntStream.range(0, pageList.size()).forEach(i -> {
        pageSearchRequest.setPage(pageList.get(i));
        mockPagedMetadata(page, pageDto, PageMockHelper.UTILIZERS, pageList.get(i), 2, pageSize, totalSize);
        PagedMetadata<ComponentUsageEntity> pageUsageDetails = pageService.getComponentUsageDetails(PageMockHelper.PAGE_CODE, pageSearchRequest);
        PageAssertionHelper.assertUsageDetails(pageUsageDetails, utilizers[i], PageMockHelper.UTILIZERS.length, pageList.get(i), pageDto.getStatus());
    });
}
Also used : PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) Page(com.agiletec.aps.system.services.page.Page) IPage(com.agiletec.aps.system.services.page.IPage) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity)

Example 10 with ComponentUsageEntity

use of org.entando.entando.web.component.ComponentUsageEntity in project entando-core 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);
        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) {
        Assert.fail("Mock Exception");
    }
}
Also used : PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) ResourceNotFoundException(org.entando.entando.aps.system.exception.ResourceNotFoundException) IntStream(java.util.stream.IntStream) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) java.util(java.util) Page(com.agiletec.aps.system.services.page.Page) Mock(org.mockito.Mock) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) RunWith(org.junit.runner.RunWith) PageModel(com.agiletec.aps.system.services.pagemodel.PageModel) PageUtilizer(com.agiletec.aps.system.services.page.PageUtilizer) Group(com.agiletec.aps.system.services.group.Group) PageAssertionHelper(org.entando.entando.aps.system.services.assertionhelper.PageAssertionHelper) IPage(com.agiletec.aps.system.services.page.IPage) 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) 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) PageSearchMapper(org.entando.entando.web.common.assembler.PageSearchMapper) Before(org.junit.Before) InjectMocks(org.mockito.InjectMocks) PageSearchRequest(org.entando.entando.web.page.model.PageSearchRequest) PageRequest(org.entando.entando.web.page.model.PageRequest) ComponentUsageEntity(org.entando.entando.web.component.ComponentUsageEntity) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) Mockito.when(org.mockito.Mockito.when) ApplicationContext(org.springframework.context.ApplicationContext) Collectors(java.util.stream.Collectors) Assertions.fail(org.assertj.core.api.Assertions.fail) PagedMetadata(org.entando.entando.web.common.model.PagedMetadata) IPageModelManager(com.agiletec.aps.system.services.pagemodel.IPageModelManager) Assert(org.junit.Assert) MockitoJUnitRunner(org.mockito.junit.MockitoJUnitRunner) IDtoBuilder(org.entando.entando.aps.system.services.IDtoBuilder) ArgumentMatchers.anyString(org.mockito.ArgumentMatchers.anyString) 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)

Aggregations

ComponentUsageEntity (org.entando.entando.web.component.ComponentUsageEntity)18 PageSearchRequest (org.entando.entando.web.page.model.PageSearchRequest)12 Test (org.junit.Test)9 IPage (com.agiletec.aps.system.services.page.IPage)7 PageDto (org.entando.entando.aps.system.services.page.model.PageDto)7 Page (com.agiletec.aps.system.services.page.Page)6 Collectors (java.util.stream.Collectors)6 PagedMetadataMapper (org.entando.entando.web.common.assembler.PagedMetadataMapper)6 PagedMetadata (org.entando.entando.web.common.model.PagedMetadata)6 ResourceNotFoundException (org.entando.entando.aps.system.exception.ResourceNotFoundException)5 RestListRequest (org.entando.entando.web.common.model.RestListRequest)5 ApsSystemException (com.agiletec.aps.system.exception.ApsSystemException)4 IGroupManager (com.agiletec.aps.system.services.group.IGroupManager)4 IPageManager (com.agiletec.aps.system.services.page.IPageManager)4 java.util (java.util)4 IDtoBuilder (org.entando.entando.aps.system.services.IDtoBuilder)4 PageSearchDto (org.entando.entando.aps.system.services.page.model.PageSearchDto)4 SearcherDaoPaginatedResult (com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult)3 Group (com.agiletec.aps.system.services.group.Group)3 RestServerError (org.entando.entando.aps.system.exception.RestServerError)3