java.lang.UnsupportedOperationException in Junit test - content fragment - ContentElement.getValue() | Community
Skip to main content
Level 2
September 14, 2022
Solved

java.lang.UnsupportedOperationException in Junit test - content fragment - ContentElement.getValue()

  • September 14, 2022
  • 2 replies
  • 4302 views

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!

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 joerghoh

Looks like these methods are not supported yet with the wcm.io mocking library (see [1]). I would raise a ticket there and ask about plans to support these methods.

 

 

[1] https://github.com/wcm-io/io.wcm.testing.aem-mock/blob/develop/core/src/main/java/io/wcm/testing/mock/aem/MockContentFragment_ContentVariation_Structured.java

 

 

2 replies

joerghoh
Adobe Employee
joerghohAdobe EmployeeAccepted solution
Adobe Employee
September 14, 2022

Looks like these methods are not supported yet with the wcm.io mocking library (see [1]). I would raise a ticket there and ask about plans to support these methods.

 

 

[1] https://github.com/wcm-io/io.wcm.testing.aem-mock/blob/develop/core/src/main/java/io/wcm/testing/mock/aem/MockContentFragment_ContentVariation_Structured.java

 

 

September 15, 2022

Thanks for pointing this out Jorg, I spent so long trying to understand what was wrong with my code before stumbling on this...

 

Seems like the issue is tracked at https://wcm-io.atlassian.net/browse/WTES-64. Is there a way to +1 it or something to indicate that other people are having this problem and it would be nice if it were prioritized.

 

Things like this can become problematic with AEMaaCS's code coverage requirements. If we have code coverage requirements, seems only fair that we get access to the proper tools that will enable us to actually cover our code.

AdobeID24
Level 5
March 26, 2023

is there any solution for that I stuck at same point.

daniel-strmecki
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
September 20, 2024

Well, if it's not supported by AEM Mocks, you will need to mock them yourself. This is usually done with the Mockito library.

A good practice I use is to create mocks based on interfaces and then register them in the AEM context with a custom builder via:

this.aemContext.registerInjectActivateService(...)

 Since this doesn't look like a service, you need to use the old school mocking for your test.

 

Good luck,

Daniel