Workflow Excel file reading Junit5 | Community
Skip to main content
imadullakhan
New Participant
March 29, 2022
Solved

Workflow Excel file reading Junit5

  • March 29, 2022
  • 1 reply
  • 1317 views

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.
Best answer by Ravi_Pampana

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.

1 reply

Ravi_Pampana
Ravi_PampanaAccepted solution
New Participant
March 29, 2022

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.

imadullakhan
New Participant
March 30, 2022

Hi @ravi_pampana 

 

I tried above snippet but not working as expected!