AEM Java unit test , adapt resource without jcr:title to model ?
In an AEM Java unit test , is it possible to adapt a resource without jcr:title to a model ?
In example below , testEmptyPage() is behaving as expected , but testEmptyPageMissingTitle() is not behaving as expected because it sets pageBean to null ?
In an AEM Java unit test , how can I adapt a resource without jcr:title to a model ?
Thank you and best regards.
********** MyPageBeanModelTest.java **********
@RunWith(MockitoJUnitRunner.class)
public class MyPageBeanModelTest {
@1227241
public final AemContext context = new AemContext();
@Mock
private LiveRelationshipManager liveRelationshipManager;
@Before
public void setUp() {
context.load().json("/mockedJCR/models/structure/page/empty-page.json", "/content/myproject/en/empty-page");
context.load().json("/mockedJCR/models/structure/page/empty-page-missing-title.json", "/content/myproject/en/empty-page-missing-title");
context.registerService(LiveRelationshipManager.class, liveRelationshipManager);
}
@2785667
public void testEmptyPage() {
System.out.println("---------------------------- START testEmptyPage() ----------------------------");
Resource resource = context.resourceResolver().getResource("/content/myproject/en/empty-page/jcr:content");
PageBeanModel pageBean = resource.adaptTo(PageBeanModel.class);
System.out.println("resource = " + (resource==null ? "NULL" : resource.toString()));
System.out.println("pageBean = " + (pageBean==null ? "NULL" : pageBean.toString()));
}
@2785667
public void testEmptyPageMissingTitle() {
System.out.println("---------------------------- START (testEmptyPageMissingTitle() ----------------------------");
Resource resource = context.resourceResolver().getResource("/content/myproject/en/empty-page-missing-title/jcr:content");
PageBeanModel pageBean = resource.adaptTo(PageBeanModel.class);
System.out.println("resource = " + (resource==null ? "NULL" : resource.toString()));
System.out.println("pageBean = " + (pageBean==null ? "NULL" : pageBean.toString()));
}
}
********** empty-page.json **********
{
"jcr:primaryType": "cq:Page",
"jcr:content": {
"jcr:primaryType": "cq:PageContent",
"jcr:title": "unitTestPage",
"sling:resourceType": "myproject/components/structure/page"
}
}
********** empty-page-missing-title.json **********
{
"jcr:primaryType": "cq:Page",
"jcr:content": {
"jcr:primaryType": "cq:PageContent",
"sling:resourceType": "myproject/components/structure/page"
}
}
********** MyPageBeanModelTest console output **********
---------------------------- START testEmptyPage() ----------------------------
resource = MockResource [path=/content/myproject/en/empty-page/jcr:content, props=org.apache.sling.testing.resourceresolver.MockValueMap@f54a9a92 : org.apache.sling.testing.resourceresolver.ValueMapDecorator@f54a9a92 : {sling:resourceType=myproject/components/structure/page, jcr:primaryType=cq:PageContent, jcr:title=unitTestPage}]
pageBean = com.project.core.models.components.structure.page.PageBeanModel@3437fc4f
---------------------------- START (testEmptyPageMissingTitle() ----------------------------
resource = MockResource [path=/content/myproject/en/empty-page-missing-title/jcr:content, props=org.apache.sling.testing.resourceresolver.MockValueMap@dde18880 : org.apache.sling.testing.resourceresolver.ValueMapDecorator@dde18880 : {sling:resourceType=myproject/components/structure/page, jcr:primaryType=cq:PageContent}]
pageBean = NULL
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0