Junit test case - Creating packages | Community
Skip to main content
Level 4
June 19, 2020
Question

Junit test case - Creating packages

  • June 19, 2020
  • 1 reply
  • 1410 views

I am trying to create Junit test case for creating packages. I have used link https://github.com/Adobe-Consulting-Services/acs-aem-commons/blob/master/bundle/src/test/java/com/adobe/acs/commons/packaging/impl/AssetPackagerServletImplTest.java for this. PFB my service and Junit code. I am getting an exception for creating package which i have mentioned below.

 

Any help would be great. Thanks in advance!!

 

Exception:

javax.jcr.RepositoryException: Item.save() not allowed on new item

at org.apache.jackrabbit.oak.jcr.session.ItemImpl.save(ItemImpl.java:267)

at org.apache.jackrabbit.oak.jcr.session.NodeImpl.save(NodeImpl.java:105)

at org.apache.jackrabbit.vault.packaging.impl.JcrPackageImpl.createNew(JcrPackageImpl.java:221)

at org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl.create(JcrPackageManagerImpl.java:344)

 

Service Code:

 

@3214626 private Packaging packaging; public void createPackage(Node rootNode, String pkgName) { JcrPackageManager jcrPackageManager = packaging.getPackageManager(session); JcrPackage jcrPackage = jcrPackageManager.create(rootNode, pkgName); JcrPackageDefinition jcrPackageDefinition = jcrPackage.getDefinition(); DefaultWorkspaceFilter workspaceFilter = new DefaultWorkspaceFilter(); for (PathFilterSet packageFilter : packageFilters) { workspaceFilter.add(packageFilter); } jcrPackageDefinition.setFilter(workspaceFilter, AUTO_SAVE); jcrPackageDefinition.set(JcrPackageDefinition.PN_DESCRIPTION, PACKAGE_DESCRIPTION + pkgName, false); jcrPackageDefinition.set(JcrPackageDefinition.PN_GROUP, rootNode.getName() , false); jcrPackageManager.assemble(jcrPackage, listener); }

 

 

Junit Code:

@ExtendWith({AemContextExtension.class, MockitoExtension.class})
class CreateComplianceFileProcessTest {

	public final AemContext context = new AemContext(ResourceResolverType.JCR_OAK);

	@InjectMocks
	private CreateComplianceFileProcess createCompFileWP;

    @Test
	void testExecute() {
	        resolver = context.resourceResolver();
			session = resolver.adaptTo(Session.class);
			when(complianceResolverService.getResourceResolver()).thenReturn(resolver);
			when(packaging.getPackageManager(any(Session.class))).thenReturn(new JcrPackageManagerImpl(session));
            createCompFileWP.execute(item, null, null);
    }
}

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.

1 reply

Theo_Pendle
Level 8
June 25, 2020
Hi, I would like to help you but reproducing the error locally is going to be very time-consuming. Could you provide a Java class and test that emulate this issue that I can just copy-paste?