Workflow Excel file reading Junit5 | Community
Skip to main content
imadullakhan
Level 3
Mar 29, 2022 2:16 PM UTC
Solved

Workflow Excel file reading Junit5

Hi @1905403,

 

Team In my Actual class holds Input Stream, XSSFWorkbook, and am iterating all the Excel column values and getting it via this snippet 'row.getCell(columnNames.get("path")).toString().trim()' code is working fine as expected. When I come to  Junits I couldn't able to cover the junits for the complete class. Can anyone help here please. How to write the junits for Excel reading class in AEM?

 

Thanks,

Imad

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Ravi_Pampana
Ravi_PampanaAccepted solution
New Participant
Mar 29, 2022 5:28 PM UTC

Hi,

 

Check below code

private static final String CONTENT_PAGES_PATH = "/content/pages";
protected static final String SHEET_NAME = "Page Meta Data";
protected static final String PATH = "path";

@BeforeEach
public void beforeEach() throws Exception {
ctx.load().json("/com/project/company/export/page-structure.json", CONTENT_PAGES_PATH);
ctx.request().setParameterMap(ImmutableMap.of("paths", new String[]{CONTENT_PAGES_PATH}));
//For reading service user, we created a util
ctx.registerService(Util.class, util);

metaDataExporterService = ctx.registerInjectActivateService(new MetaDataExporterService());

when(util.getSysUserResourceResolver()).thenReturn(ctx.resourceResolver().clone(new HashMap<>()));
}

@2785667
public void testExcelExportIsCreated() throws Exception {
XSSFWorkbook metaDataWorkbookFromPage =
metaDataExporterService.createMetaDataWorkbookFromPage(CONTENT_PAGES_PATH);

XSSFSheet sheet = metaDataWorkbookFromPage.getSheet(SHEET_NAME);
assertNotNull(sheet);

XSSFRow row = sheet.getRow(0);

assertEquals(PATH, row.getCell(0).toString());

XSSFRow row1 = sheet.getRow(1);

assertEquals("/content/pages/jcr:content", row1.getCell(0).toString());
}

 

page-structure.json - will have json of /content/pages - dummy pages with jcr:content node for every page.

2 replies

Ravi_Pampana
Ravi_PampanaAccepted solution
New Participant
Mar 29, 2022 5:28 PM UTC

Hi,

 

Check below code

private static final String CONTENT_PAGES_PATH = "/content/pages";
protected static final String SHEET_NAME = "Page Meta Data";
protected static final String PATH = "path";

@BeforeEach
public void beforeEach() throws Exception {
ctx.load().json("/com/project/company/export/page-structure.json", CONTENT_PAGES_PATH);
ctx.request().setParameterMap(ImmutableMap.of("paths", new String[]{CONTENT_PAGES_PATH}));
//For reading service user, we created a util
ctx.registerService(Util.class, util);

metaDataExporterService = ctx.registerInjectActivateService(new MetaDataExporterService());

when(util.getSysUserResourceResolver()).thenReturn(ctx.resourceResolver().clone(new HashMap<>()));
}

@2785667
public void testExcelExportIsCreated() throws Exception {
XSSFWorkbook metaDataWorkbookFromPage =
metaDataExporterService.createMetaDataWorkbookFromPage(CONTENT_PAGES_PATH);

XSSFSheet sheet = metaDataWorkbookFromPage.getSheet(SHEET_NAME);
assertNotNull(sheet);

XSSFRow row = sheet.getRow(0);

assertEquals(PATH, row.getCell(0).toString());

XSSFRow row1 = sheet.getRow(1);

assertEquals("/content/pages/jcr:content", row1.getCell(0).toString());
}

 

page-structure.json - will have json of /content/pages - dummy pages with jcr:content node for every page.

Translate
imadullakhan
Level 3
Mar 30, 2022 1:27 PM UTC

Hi @ravi_pampana 

 

I tried above snippet but not working as expected!

Translate