Skip to content

Commit

Permalink
migrated EasyMock/PoweMock to Mockito
Browse files Browse the repository at this point in the history
  • Loading branch information
BalusC committed Mar 2, 2024
1 parent 79f91ce commit 64f1cee
Show file tree
Hide file tree
Showing 17 changed files with 193 additions and 354 deletions.
13 changes: 3 additions & 10 deletions impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -149,16 +149,9 @@
</dependency>

<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
<version>3.2</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-easymock</artifactId>
<version>2.0.9</version>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.11.0</version>
<scope>test</scope>
</dependency>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,10 @@

package com.sun.faces.context;

import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import static org.mockito.Mockito.when;

import java.util.HashMap;
import java.util.Iterator;
Expand All @@ -31,7 +29,7 @@
import java.util.function.Supplier;

import org.junit.jupiter.api.Test;
import org.powermock.api.easymock.PowerMock;
import org.mockito.Mockito;

import jakarta.servlet.ServletContext;
import jakarta.servlet.http.Cookie;
Expand All @@ -48,14 +46,12 @@ public class ExternalContextImplTest {
*/
@Test
public void testGetRequestCookieMap() {
ServletContext servletContext = PowerMock.createNiceMock(ServletContext.class);
HttpServletRequest request = PowerMock.createNiceMock(HttpServletRequest.class);
HttpServletResponse response = PowerMock.createNiceMock(HttpServletResponse.class);
replay(servletContext, request, response);

ServletContext servletContext = Mockito.mock(ServletContext.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);

ExternalContextImpl externalContext = new ExternalContextImpl(servletContext, request, response);
verify(servletContext, request, response);


assertNotNull(externalContext.getRequestCookieMap());
}

Expand All @@ -64,19 +60,17 @@ public void testGetRequestCookieMap() {
*/
@Test
public void testGetRequestCookieMap2() {
ServletContext servletContext = PowerMock.createNiceMock(ServletContext.class);
HttpServletRequest request = PowerMock.createNiceMock(HttpServletRequest.class);
HttpServletResponse response = PowerMock.createNiceMock(HttpServletResponse.class);
ServletContext servletContext = Mockito.mock(ServletContext.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
Cookie cookie = new Cookie("foo", "bar");
expect(request.getCookies()).andReturn(new Cookie[]{cookie}).anyTimes();
replay(servletContext, request, response);

when(request.getCookies()).thenReturn(new Cookie[]{cookie});

ExternalContextImpl externalContext = new ExternalContextImpl(servletContext, request, response);
verify(servletContext, request, response);
Map<String, Object> requestCookieMap = externalContext.getRequestCookieMap();
assertTrue(requestCookieMap.get("foo") instanceof Cookie);
Cookie value = (Cookie) requestCookieMap.get("foo");

assertTrue(value.getValue().equals("bar"));
assertTrue(requestCookieMap.containsKey("foo"));
assertTrue(requestCookieMap.containsValue(requestCookieMap.get("foo")));
Expand All @@ -93,15 +87,13 @@ public void testGetRequestCookieMap2() {
*/
@Test
public void testGetRequestCookieMap3() {
ServletContext servletContext = PowerMock.createNiceMock(ServletContext.class);
HttpServletRequest request = PowerMock.createNiceMock(HttpServletRequest.class);
HttpServletResponse response = PowerMock.createNiceMock(HttpServletResponse.class);
ServletContext servletContext = Mockito.mock(ServletContext.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
Cookie cookie = new Cookie("foo", "bar");
expect(request.getCookies()).andReturn(new Cookie[]{cookie}).anyTimes();
replay(servletContext, request, response);

when(request.getCookies()).thenReturn(new Cookie[]{cookie});

ExternalContextImpl externalContext = new ExternalContextImpl(servletContext, request, response);
verify(servletContext, request, response);
Map<String, Object> requestCookieMap = externalContext.getRequestCookieMap();

Iterator<Entry<String, Object>> entryIterator = requestCookieMap.entrySet().iterator();
Expand Down Expand Up @@ -160,23 +152,21 @@ public void testGetRequestCookieMap3() {
@SuppressWarnings("unchecked")
@Test
public void testGetRequestCookieMap4() {
ServletContext servletContext = PowerMock.createNiceMock(ServletContext.class);
HttpServletRequest request = PowerMock.createNiceMock(HttpServletRequest.class);
HttpServletResponse response = PowerMock.createNiceMock(HttpServletResponse.class);
ServletContext servletContext = Mockito.mock(ServletContext.class);
HttpServletRequest request = Mockito.mock(HttpServletRequest.class);
HttpServletResponse response = Mockito.mock(HttpServletResponse.class);
Cookie cookie = new Cookie("foo", "bar");
expect(request.getCookies()).andReturn(new Cookie[]{cookie}).anyTimes();
replay(servletContext, request, response);

when(request.getCookies()).thenReturn(new Cookie[]{cookie});

ExternalContextImpl externalContext = new ExternalContextImpl(servletContext, request, response);
verify(servletContext, request, response);
Map<String, Object> requestCookieMap = externalContext.getRequestCookieMap();
boolean exceptionThrown = false;
try {
requestCookieMap.clear();
} catch (UnsupportedOperationException e) {
exceptionThrown = true;
}

assertTrue(exceptionThrown);
verifySupplier(() -> requestCookieMap.put("foot", "bar"));
verifyConsumer(m -> requestCookieMap.putAll((Map<? extends String, ? extends Object>) m), new HashMap<>());
Expand All @@ -191,13 +181,13 @@ public void testGetRequestCookieMap4() {
*/
private void verifyConsumer(Consumer<Object> consumer, Object argument) {
boolean exceptionThrown = false;

try {
consumer.accept(argument);
} catch (UnsupportedOperationException e) {
exceptionThrown = true;
}

assertTrue(exceptionThrown);
}

Expand All @@ -208,13 +198,13 @@ private void verifyConsumer(Consumer<Object> consumer, Object argument) {
*/
private void verifySupplier(Supplier<?> supplier) {
boolean exceptionThrown = false;

try {
supplier.get();
} catch (UnsupportedOperationException e) {
exceptionThrown = true;
}

assertTrue(exceptionThrown);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,17 @@

package com.sun.faces.el;

import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.when;

import java.beans.BeanDescriptor;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Map;

import org.easymock.EasyMock;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import com.sun.faces.facelets.tag.composite.CompositeComponentBeanInfo;

Expand All @@ -50,11 +48,11 @@ public class CompositeComponentAttributesELResolverTest {
*/
@Test
public void testGetValue() throws Exception {
ELContext elContext1 = EasyMock.createNiceMock(ELContext.class);
FacesContext facesContext1 = EasyMock.createNiceMock(FacesContext.class);
ELContext elContext2 = EasyMock.createNiceMock(ELContext.class);
FacesContext facesContext2 = EasyMock.createNiceMock(FacesContext.class);
ELContext elContext1 = Mockito.mock(ELContext.class);
FacesContext facesContext1 = Mockito.mock(FacesContext.class);
ELContext elContext2 = Mockito.mock(ELContext.class);
FacesContext facesContext2 = Mockito.mock(FacesContext.class);

HashMap<Object, Object> ctxAttributes1 = new HashMap<Object, Object>();
UIPanel composite = new UIPanel();
CompositeComponentBeanInfo compositeBeanInfo = new CompositeComponentBeanInfo();
Expand All @@ -64,20 +62,19 @@ public void testGetValue() throws Exception {
composite.getAttributes().put(UIComponent.BEANINFO_KEY, compositeBeanInfo);
String property = "attrs";

expect(elContext1.getContext(FacesContext.class)).andReturn(facesContext1);
expect(facesContext1.getAttributes()).andReturn(ctxAttributes1);
expect(elContext2.getContext(FacesContext.class)).andReturn(facesContext2);
expect(facesContext2.getAttributes()).andReturn(ctxAttributes1);
replay(elContext1, facesContext1, elContext2, facesContext2);

when(elContext1.getContext(FacesContext.class)).thenReturn(facesContext1);
when(facesContext1.getAttributes()).thenReturn(ctxAttributes1);
when(elContext2.getContext(FacesContext.class)).thenReturn(facesContext2);
when(facesContext2.getAttributes()).thenReturn(ctxAttributes1);

CompositeComponentAttributesELResolver elResolver = new CompositeComponentAttributesELResolver();
Map<String, Object> evalMap1 = (Map<String, Object>) elResolver.getValue(elContext1, composite, property);
assertNotNull(evalMap1);
Map<String, Object> evalMap2 = (Map<String, Object>) elResolver.getValue(elContext2, composite, property);
assertNotNull(evalMap2);

Field ctxField1 = evalMap1.getClass().getDeclaredField("ctx");
ctxField1.setAccessible(true);
ctxField1.setAccessible(true);
Field ctxField2 = evalMap2.getClass().getDeclaredField("ctx");
ctxField2.setAccessible(true);

Expand All @@ -86,7 +83,5 @@ public void testGetValue() throws Exception {
assertTrue(facesContext2 == ctxField1.get(evalMap1));
assertTrue(facesContext1 != ctxField2.get(evalMap2));
assertTrue(facesContext2 == ctxField2.get(evalMap2));

verify(elContext1, facesContext1, elContext2, facesContext2);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@

package com.sun.faces.facelets.component;

import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;

import java.lang.reflect.Method;

import org.easymock.EasyMock;
import org.easymock.IAnswer;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;

import jakarta.faces.application.FacesMessage;
import jakarta.faces.application.FacesMessage.Severity;
Expand All @@ -40,14 +40,13 @@ public class UIRepeatTest {

@Test
public void testHasErrorMessages() throws Exception {
ctx = EasyMock.createMock(FacesContext.class);
expect(ctx.getMaximumSeverity()).andAnswer(new IAnswer<Severity>() {
@Override
public Severity answer() throws Throwable {
return maximumSeverity;
}
}).anyTimes();
replay(ctx);
ctx = Mockito.mock(FacesContext.class);
when(ctx.getMaximumSeverity()).thenAnswer(new Answer<Severity>() {
@Override
public Severity answer(InvocationOnMock invocation) throws Throwable {
return maximumSeverity;
}
});

maximumSeverity = FacesMessage.SEVERITY_WARN;
assertEquals(false, hasErrorMessages(ctx));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@

package com.sun.faces.renderkit.html_basic;

import static org.easymock.EasyMock.expect;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.mockito.Mockito.when;

import java.io.StringWriter;
import java.util.Collections;

import org.junit.jupiter.api.Test;
import org.powermock.api.easymock.PowerMock;
import org.mockito.Mockito;

import jakarta.faces.application.Application;
import jakarta.faces.application.ProjectStage;
Expand Down Expand Up @@ -56,16 +56,14 @@ public void testDecode() {
public void testEncodeBegin() throws Exception {
StringWriter writer = new StringWriter();
ResponseWriter testResponseWriter = new TestResponseWriter(writer);
FacesContext facesContext = PowerMock.createPartialMock(FacesContext.class, "getResponseWriter");
FacesContext facesContext = Mockito.mock(FacesContext.class);
BodyRenderer bodyRenderer = new BodyRenderer();
HtmlBody htmlBody = new HtmlBody();
htmlBody.getAttributes().put("styleClass", "myclass");

expect(facesContext.getResponseWriter()).andReturn(testResponseWriter).anyTimes();

PowerMock.replay(facesContext);

when(facesContext.getResponseWriter()).thenReturn(testResponseWriter);

bodyRenderer.encodeBegin(facesContext, htmlBody);
PowerMock.verify(facesContext);
String html = writer.toString();
assertTrue(html.contains("<body"));
assertTrue(html.contains("class=\"myclass\""));
Expand Down Expand Up @@ -97,22 +95,20 @@ public void testEncodeChildren() throws Exception {
public void testEncodeEnd() throws Exception {
StringWriter writer = new StringWriter();
ResponseWriter testResponseWriter = new TestResponseWriter(writer);
FacesContext facesContext = PowerMock.createPartialMockForAllMethodsExcept(FacesContext.class, "getCurrentInstance");
UIViewRoot viewRoot = PowerMock.createMock(UIViewRoot.class);
Application application = PowerMock.createMock(Application.class);
FacesContext facesContext = Mockito.mock(FacesContext.class);
UIViewRoot viewRoot = Mockito.mock(UIViewRoot.class);
Application application = Mockito.mock(Application.class);
BodyRenderer bodyRenderer = new BodyRenderer();
HtmlBody htmlBody = new HtmlBody();

expect(facesContext.getApplication()).andReturn(application).anyTimes();
expect(facesContext.getClientIdsWithMessages()).andReturn(Collections.EMPTY_LIST.iterator()).anyTimes();
expect(facesContext.getResponseWriter()).andReturn(testResponseWriter).anyTimes();
expect(facesContext.getViewRoot()).andReturn(viewRoot).anyTimes();
expect(facesContext.isProjectStage(ProjectStage.Development)).andReturn(false).anyTimes();
expect(viewRoot.getComponentResources(facesContext, "body")).andReturn(Collections.EMPTY_LIST).anyTimes();

PowerMock.replay(facesContext, viewRoot, application);

when(facesContext.getApplication()).thenReturn(application);
when(facesContext.getClientIdsWithMessages()).thenReturn(Collections.EMPTY_LIST.iterator());
when(facesContext.getResponseWriter()).thenReturn(testResponseWriter);
when(facesContext.getViewRoot()).thenReturn(viewRoot);
when(facesContext.isProjectStage(ProjectStage.Development)).thenReturn(false);
when(viewRoot.getComponentResources(facesContext, "body")).thenReturn(Collections.EMPTY_LIST);

bodyRenderer.encodeEnd(facesContext, htmlBody);
PowerMock.verify(facesContext, viewRoot, application);
String html = writer.toString();
assertTrue(html.contains("</body>"));
}
Expand Down
Loading

0 comments on commit 64f1cee

Please sign in to comment.