Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.
SOLVED

Content fragment mock giving "java.lang.UnsupportedOperationException"

Avatar

Level 5

Hi,

 

Facing one issue while calling "getTemplate" method of content fragment mock. Please let me know your thoughts on the same.

 

issue details:

java.lang.UnsupportedOperationException
at io.wcm.testing.mock.aem.MockContentFragment.getTemplate(MockContentFragment.java:232)

 

Junit code snippet:

contentFragment = contentFragmentResource.adaptTo(ContentFragment.class);
lenient().when(contentFragment.getTemplate().getTitle()).thenReturn("testing");

Thanks,

Ravi Joshi

1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @ravi_joshi,

It is not supported, Exception is thrown from the respective method. 

 

Vijayalakshmi_S_0-1632431999022.png

 

View solution in original post

6 Replies

Avatar

Correct answer by
Community Advisor

Hi @ravi_joshi,

It is not supported, Exception is thrown from the respective method. 

 

Vijayalakshmi_S_0-1632431999022.png

 

Avatar

Level 5

Hi @Vijayalakshmi_S ,

 

Thank you. That was a very helpful explanation. But could you suggest how we can mock "getTemplate()" in the same reference. Or there are any other way to get template or content fragment model title to replace this method invocation.

 

Thanks,

Ravi Joshi

Avatar

Community Advisor

From the API documentation of com.adobe.cq.dam.cfm.* package, no other alternative way to retrieve the Content Fragment Model/CF's template Title. 

 

Avatar

Level 2

Hi I'm facing the same issue, has anyone resolve it already? 

Avatar

Level 2

Hi @Vijayalakshmi_S ,

 

I am trying to write a Junit for below piece of code and getting this error

java.lang.UnsupportedOperationException
at io.wcm.testing.mock.aem.MockContentFragment_ContentElement_Structured.getValue(MockContentFragment_ContentElement_Structured.java:173)

 

Code snippet

 

private String getAuthoredDate(ContentFragment contentFragment) {
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy");
ContentElement contentElement = contentFragment.getElement("authoredDate");
Calendar date = (Calendar) contentElement.getValue().getValue();
return sdf.format(date.getTime());
}

 

Any Idea how can I mock the ContentElement getvalue and FragmentData getvalue functions?

 

Thanks!

 

Avatar

Level 1

seems like no update soon from AEM mocks for ContentFragment
https://wcm-io.atlassian.net/browse/WTES-75

 

Resource contentFragmentResource = resourceResolver.getResource(contentFragmentPath);
String modelPath = contentFragmentResource.getChild("jcr:content/data").getValueMap().get("cq:model").toString();
Resource resource = resourceResolver.getResource(modelPath);
resource.getChild("jcr:content").getValueMap().get("jcr:title")