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

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

  • September 14, 2022
  • 2 replies
  • 4287 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

daniel-strmecki
New Participant
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

 

joerghoh
joerghohAccepted solution
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

 

 

New Participant
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
New Participant
March 26, 2023

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