Skip to content

Commit

Permalink
Merge pull request #5409 from eclipse-ee4j/migrate_tests_to_junit5_an…
Browse files Browse the repository at this point in the history
…d_mockito

Migrate JUnit4 to JUnit5 and EasyMock/PowerMock to Mockito
  • Loading branch information
arjantijms committed Mar 4, 2024
2 parents 6189930 + 64f1cee commit d4f985d
Show file tree
Hide file tree
Showing 84 changed files with 1,303 additions and 1,701 deletions.
19 changes: 6 additions & 13 deletions impl/pom.xml
Expand Up @@ -149,23 +149,16 @@
</dependency>

<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
<version>3.2</version>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.11.0</version>
<scope>test</scope>
</dependency>

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

<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.9</version>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.2</version>
<scope>test</scope>
</dependency>

Expand Down
Expand Up @@ -16,18 +16,18 @@

package com.sun.faces.application;

import static org.junit.jupiter.api.Assertions.assertTrue;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import org.junit.Test;
import org.junit.jupiter.api.Test;

import jakarta.faces.application.FacesMessage;

import static org.junit.Assert.*;

public class FacesMessageTest {

// Case 0 (nothing)
Expand Down
Expand Up @@ -16,14 +16,13 @@

package com.sun.faces.application.resource;

import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import org.junit.jupiter.api.Test;

public class ResourceCacheTest {

Expand All @@ -36,7 +35,7 @@ public void noMemoryLeakWithContracts() {
// now we clear the contracts list, which was used to create the cache entry.
contracts.clear();
ResourceInfo cachedResourceInfo = cache.get("bar.gif", null, null, Arrays.asList("foo", "baz"));
assertThat(cachedResourceInfo, is(resourceInfo));
assertEquals(resourceInfo, cachedResourceInfo);
}

}
5 changes: 4 additions & 1 deletion impl/src/test/java/com/sun/faces/config/DigesterFactory.java
Expand Up @@ -16,11 +16,13 @@

package com.sun.faces.config;

import javax.xml.parsers.ParserConfigurationException;
import java.net.URL;
import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.xml.parsers.ParserConfigurationException;

import org.apache.commons.digester.Digester;
import org.apache.commons.logging.impl.NoOpLog;
import org.xml.sax.ErrorHandler;
Expand All @@ -30,6 +32,7 @@
import org.xml.sax.SAXNotSupportedException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;

import com.sun.faces.util.ToolsUtil;

/**
Expand Down
Expand Up @@ -17,8 +17,8 @@
package com.sun.faces.config.processor;

import static com.sun.faces.util.Util.createLocalDocumentBuilderFactory;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
Expand All @@ -28,7 +28,7 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;

import org.junit.Test;
import org.junit.jupiter.api.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
Expand Down
Expand Up @@ -16,24 +16,25 @@

package com.sun.faces.context;

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;
import java.util.Map;
import java.util.Map.Entry;
import java.util.function.Consumer;
import java.util.function.Supplier;

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

import jakarta.servlet.ServletContext;
import jakarta.servlet.http.Cookie;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import org.junit.Test;
import org.powermock.api.easymock.PowerMock;

/**
* The JUnit tests for the ExternalContextImpl class.
Expand All @@ -45,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 @@ -61,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 @@ -90,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 @@ -157,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 @@ -188,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 @@ -205,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);
}
}
Expand Up @@ -16,23 +16,25 @@

package com.sun.faces.el;

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

import jakarta.faces.application.Resource;
import jakarta.faces.component.UIComponent;
import jakarta.faces.component.UIPanel;
import jakarta.faces.context.FacesContext;
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 jakarta.el.ELContext;

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

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

import jakarta.el.ELContext;
import jakarta.faces.application.Resource;
import jakarta.faces.component.UIComponent;
import jakarta.faces.component.UIPanel;
import jakarta.faces.context.FacesContext;

/**
* The JUnit tests for the CompositeComponentAttributesELResolver class.
Expand All @@ -46,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 @@ -60,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 @@ -82,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);
}
}

0 comments on commit d4f985d

Please sign in to comment.