You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by re...@apache.org on 2023/07/15 14:52:19 UTC

[cxf] branch main updated: CXF-8856: Get rid of EasyMock in cxf-rt-frontend-jaxrs (#1331)

This is an automated email from the ASF dual-hosted git repository.

reta pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/cxf.git


The following commit(s) were added to refs/heads/main by this push:
     new 650b7a4eeb CXF-8856: Get rid of EasyMock in cxf-rt-frontend-jaxrs (#1331)
650b7a4eeb is described below

commit 650b7a4eeb44b7283f4c647cbecf186091785676
Author: Andriy Redko <dr...@gmail.com>
AuthorDate: Sat Jul 15 10:52:14 2023 -0400

    CXF-8856: Get rid of EasyMock in cxf-rt-frontend-jaxrs (#1331)
---
 rt/frontend/jaxrs/pom.xml                          |  5 +-
 .../cxf/jaxrs/SelectMethodCandidatesTest.java      | 17 +++---
 .../cxf/jaxrs/ext/MessageContextImplTest.java      | 47 ++++++---------
 .../cxf/jaxrs/impl/AsyncResponseImplTest.java      | 51 ++++++-----------
 .../cxf/jaxrs/impl/RequestPreprocessorTest.java    | 36 ++++--------
 .../apache/cxf/jaxrs/impl/ResponseImplTest.java    | 66 ++++++++++------------
 .../org/apache/cxf/jaxrs/impl/UriInfoImplTest.java | 21 ++-----
 .../lifecycle/PerRequestResourceProviderTest.java  | 16 +++---
 .../cxf/jaxrs/model/OperationResourceInfoTest.java |  8 +--
 .../provider/AbstractConfigurableProviderTest.java |  5 +-
 .../jaxrs/provider/JAXBElementProviderTest.java    | 16 +++---
 .../cxf/jaxrs/provider/ProviderFactoryTest.java    |  8 +--
 .../cxf/jaxrs/provider/XSLTJaxbProviderTest.java   | 16 +++---
 .../springmvc/SpringViewResolverProviderTest.java  | 64 +++++++++------------
 .../org/apache/cxf/jaxrs/utils/FormUtilsTest.java  | 28 ++++-----
 .../org/apache/cxf/jaxrs/utils/HttpUtilsTest.java  | 46 ++++++---------
 .../apache/cxf/jaxrs/utils/InjectionUtilsTest.java | 16 +++---
 .../org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java | 57 ++++++++-----------
 18 files changed, 215 insertions(+), 308 deletions(-)

diff --git a/rt/frontend/jaxrs/pom.xml b/rt/frontend/jaxrs/pom.xml
index dfb9fda889..540c78f217 100644
--- a/rt/frontend/jaxrs/pom.xml
+++ b/rt/frontend/jaxrs/pom.xml
@@ -164,8 +164,9 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>org.easymock</groupId>
-            <artifactId>easymock</artifactId>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>${cxf.mockito.version}</version>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
index 0572271323..d9e1e27d44 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/SelectMethodCandidatesTest.java
@@ -59,12 +59,13 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class SelectMethodCandidatesTest {
 
@@ -855,14 +856,12 @@ public class SelectMethodCandidatesTest {
     }
 
     private static Endpoint mockEndpoint() {
-        Endpoint e = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(e.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(e.size()).andReturn(0).anyTimes();
-        EasyMock.expect(e.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(e.get(ServerProviderFactory.class.getName())).andReturn(ServerProviderFactory.getInstance())
-                .times(3);
-        EasyMock.expect(e.get("org.apache.cxf.jaxrs.comparator")).andReturn(null);
-        EasyMock.replay(e);
+        Endpoint e = mock(Endpoint.class);
+        when(e.isEmpty()).thenReturn(true);
+        when(e.size()).thenReturn(0);
+        when(e.getEndpointInfo()).thenReturn(null);
+        when(e.get(ServerProviderFactory.class.getName())).thenReturn(ServerProviderFactory.getInstance());
+        when(e.get("org.apache.cxf.jaxrs.comparator")).thenReturn(null);
         return e;
     }
 
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/MessageContextImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/MessageContextImplTest.java
index 702d1fa1f5..0ef66ba2e1 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/MessageContextImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/ext/MessageContextImplTest.java
@@ -59,9 +59,6 @@ import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.phase.PhaseInterceptorChain;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.containsString;
@@ -70,6 +67,9 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class MessageContextImplTest {
 
@@ -144,7 +144,7 @@ public class MessageContextImplTest {
     public void testHttpRequest() {
         Message m = createMessage();
         MessageContext mc = new MessageContextImpl(m);
-        HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
+        HttpServletRequest request = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, request);
 
         assertSame(request.getClass(),
@@ -157,7 +157,7 @@ public class MessageContextImplTest {
     public void testHttpResponse() {
         Message m = createMessage();
         MessageContext mc = new MessageContextImpl(m);
-        HttpServletResponse request = EasyMock.createMock(HttpServletResponse.class);
+        HttpServletResponse request = mock(HttpServletResponse.class);
         m.put(AbstractHTTPDestination.HTTP_RESPONSE, request);
         HttpServletResponseFilter filter = (HttpServletResponseFilter)mc.getHttpServletResponse();
         assertSame(request.getClass(), filter.getResponse().getClass());
@@ -169,7 +169,7 @@ public class MessageContextImplTest {
     public void testServletContext() {
         Message m = createMessage();
         MessageContext mc = new MessageContextImpl(m);
-        ServletContext request = EasyMock.createMock(ServletContext.class);
+        ServletContext request = mock(ServletContext.class);
         m.put(AbstractHTTPDestination.HTTP_CONTEXT, request);
         assertSame(request.getClass(), mc.getServletContext().getClass());
         assertSame(request.getClass(), mc.getContext(ServletContext.class).getClass());
@@ -179,7 +179,7 @@ public class MessageContextImplTest {
     public void testServletConfig() {
         Message m = createMessage();
         MessageContext mc = new MessageContextImpl(m);
-        ServletConfig request = EasyMock.createMock(ServletConfig.class);
+        ServletConfig request = mock(ServletConfig.class);
         m.put(AbstractHTTPDestination.HTTP_CONFIG, request);
         assertSame(request.getClass(), mc.getServletConfig().getClass());
         assertSame(request.getClass(), mc.getContext(ServletConfig.class).getClass());
@@ -196,9 +196,8 @@ public class MessageContextImplTest {
         Exchange ex = new ExchangeImpl();
         m.setExchange(ex);
         ex.setInMessage(m);
-        Endpoint e = EasyMock.createMock(Endpoint.class);
-        EasyMock.expect(e.get(ServerProviderFactory.class.getName())).andReturn(factory);
-        EasyMock.replay(e);
+        Endpoint e = mock(Endpoint.class);
+        when(e.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         ex.put(Endpoint.class, e);
         MessageContext mc = new MessageContextImpl(m);
         ContextResolver<JAXBContext> resolver2 =
@@ -226,16 +225,7 @@ public class MessageContextImplTest {
             in.getExchange().setOutMessage(out);
             
             final Binding binding = in.getExchange().getEndpoint().getBinding();
-            final Capture<Message> capture = Capture.newInstance();
-            EasyMock.expect(binding.createMessage(EasyMock.capture(capture)))
-                .andAnswer(
-                    new IAnswer<Message>() {
-                        @Override
-                        public Message answer() throws Throwable {
-                            return capture.getValue();
-                        }
-                    }
-                ).anyTimes();
+            when(binding.createMessage(any(Message.class))).thenAnswer(i -> i.getArguments()[0]);
     
             final String id = UUID.randomUUID().toString();
             final MultivaluedMap<String, String> headers = new MultivaluedHashMap<>();
@@ -256,15 +246,14 @@ public class MessageContextImplTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Binding binding = EasyMock.mock(Binding.class);
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.expect(endpoint.getBinding()).andReturn(binding).anyTimes();
-        EasyMock.replay(endpoint);
+        Binding binding = mock(Binding.class);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
+        when(endpoint.getBinding()).thenReturn(binding);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/AsyncResponseImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/AsyncResponseImplTest.java
index 9098bd5364..b27284a2d2 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/AsyncResponseImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/AsyncResponseImplTest.java
@@ -30,40 +30,29 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.transport.http.Servlet3ContinuationProvider;
 
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
 import org.junit.Assert;
-import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class AsyncResponseImplTest {
-
-    private IMocksControl control;
-
-    @Before
-    public void setUp() {
-        control = EasyMock.createNiceControl();
-    }
-
     /**
      * According to the spec, subsequent calls to cancel the same AsyncResponse should
      * have the same behavior as the first call.
      */
     @Test
     public void testCancelBehavesTheSameWhenInvokedMultipleTimes() {
-        HttpServletRequest req = control.createMock(HttpServletRequest.class);
-        HttpServletResponse resp = control.createMock(HttpServletResponse.class);
-        AsyncContext asyncCtx = control.createMock(AsyncContext.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
+        HttpServletResponse resp = mock(HttpServletResponse.class);
+        AsyncContext asyncCtx = mock(AsyncContext.class);
         Message msg = new MessageImpl();
         msg.setExchange(new ExchangeImpl());
         msg.put(ContinuationProvider.class.getName(), new Servlet3ContinuationProvider(req, resp, msg));
 
-        req.startAsync();
-        EasyMock.expectLastCall().andReturn(asyncCtx);
-        control.replay();
+        when(req.startAsync()).thenReturn(asyncCtx);
 
         AsyncResponse impl = new AsyncResponseImpl(msg);
 
@@ -91,16 +80,14 @@ public class AsyncResponseImplTest {
      */
     @Test
     public void testCancelIntBehavesTheSameWhenInvokedMultipleTimes() {
-        HttpServletRequest req = control.createMock(HttpServletRequest.class);
-        HttpServletResponse resp = control.createMock(HttpServletResponse.class);
-        AsyncContext asyncCtx = control.createMock(AsyncContext.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
+        HttpServletResponse resp = mock(HttpServletResponse.class);
+        AsyncContext asyncCtx = mock(AsyncContext.class);
         Message msg = new MessageImpl();
         msg.setExchange(new ExchangeImpl());
         msg.put(ContinuationProvider.class.getName(), new Servlet3ContinuationProvider(req, resp, msg));
 
-        req.startAsync();
-        EasyMock.expectLastCall().andReturn(asyncCtx);
-        control.replay();
+        when(req.startAsync()).thenReturn(asyncCtx);
 
         AsyncResponse impl = new AsyncResponseImpl(msg);
 
@@ -128,16 +115,14 @@ public class AsyncResponseImplTest {
      */
     @Test
     public void testCancelDateBehavesTheSameWhenInvokedMultipleTimes() {
-        HttpServletRequest req = control.createMock(HttpServletRequest.class);
-        HttpServletResponse resp = control.createMock(HttpServletResponse.class);
-        AsyncContext asyncCtx = control.createMock(AsyncContext.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
+        HttpServletResponse resp = mock(HttpServletResponse.class);
+        AsyncContext asyncCtx = mock(AsyncContext.class);
         Message msg = new MessageImpl();
         msg.setExchange(new ExchangeImpl());
         msg.put(ContinuationProvider.class.getName(), new Servlet3ContinuationProvider(req, resp, msg));
 
-        req.startAsync();
-        EasyMock.expectLastCall().andReturn(asyncCtx);
-        control.replay();
+        when(req.startAsync()).thenReturn(asyncCtx);
 
         AsyncResponse impl = new AsyncResponseImpl(msg);
 
@@ -168,14 +153,12 @@ public class AsyncResponseImplTest {
      */
     @Test
     public void testNullContinutaion() {
-        HttpServletRequest req = control.createMock(HttpServletRequest.class);
-        AsyncContext asyncCtx = control.createMock(AsyncContext.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
+        AsyncContext asyncCtx = mock(AsyncContext.class);
         Message msg = new MessageImpl();
         msg.setExchange(new ExchangeImpl());
 
-        req.startAsync();
-        EasyMock.expectLastCall().andReturn(asyncCtx);
-        control.replay();
+        when(req.startAsync()).thenReturn(asyncCtx);
 
         AsyncResponse impl;
         try {
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java
index 3ef3c6c2a3..50a4ad2f13 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/RequestPreprocessorTest.java
@@ -34,25 +34,13 @@ import org.apache.cxf.service.model.BindingInfo;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.servlet.ServletDestination;
 
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
-import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
-
-
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class RequestPreprocessorTest {
-
-    private IMocksControl control;
-
-    @Before
-    public void setUp() {
-        control = EasyMock.createNiceControl();
-        control.makeThreadSafe(true);
-    }
-
     @Test
     public void testMethodQuery() {
         Message m = mockMessage("http://localhost:8080", "/bar", "_method=GET", "POST");
@@ -109,18 +97,17 @@ public class RequestPreprocessorTest {
         m.put("org.apache.cxf.endpoint.private", false);
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
-        control.reset();
-        Endpoint endp = control.mock(Endpoint.class);
+
+        Endpoint endp = mock(Endpoint.class);
         e.put(Endpoint.class, endp);
-        EasyMock.expect(endp.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endp.get(ServerProviderFactory.class.getName())).andReturn(ServerProviderFactory.getInstance())
-                .anyTimes();
-        ServletDestination d = control.createMock(ServletDestination.class);
+        when(endp.isEmpty()).thenReturn(true);
+        when(endp.get(ServerProviderFactory.class.getName())).thenReturn(ServerProviderFactory.getInstance());
+        ServletDestination d = mock(ServletDestination.class);
         e.setDestination(d);
         EndpointInfo epr = new EndpointInfo();
         epr.setAddress(baseAddress);
-        EasyMock.expect(d.getEndpointInfo()).andReturn(epr).anyTimes();
-        EasyMock.expect(endp.getEndpointInfo()).andReturn(epr).anyTimes();
+        when(d.getEndpointInfo()).thenReturn(epr);
+        when(endp.getEndpointInfo()).thenReturn(epr);
         m.put(Message.REQUEST_URI, pathInfo);
         m.put(Message.QUERY_STRING, query);
         m.put(Message.HTTP_REQUEST_METHOD, method);
@@ -129,11 +116,10 @@ public class RequestPreprocessorTest {
             headers.put("X-HTTP-Method-Override", Collections.singletonList(methodHeader));
         }
         m.put(Message.PROTOCOL_HEADERS, headers);
-        BindingInfo bi = control.createMock(BindingInfo.class);
+        BindingInfo bi = mock(BindingInfo.class);
         epr.setBinding(bi);
-        EasyMock.expect(bi.getProperties()).andReturn(Collections.emptyMap()).anyTimes();
+        when(bi.getProperties()).thenReturn(Collections.emptyMap());
 
-        control.replay();
         return m;
     }
 
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
index 6a280835f8..5017d1eeb6 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseImplTest.java
@@ -77,7 +77,6 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.staxutils.StaxUtils;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -87,7 +86,10 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertThrows;
 import static org.junit.Assert.assertTrue;
-
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 
 @SuppressWarnings("resource") // Responses built in this test don't need to be closed
 public class ResponseImplTest {
@@ -148,13 +150,12 @@ public class ResponseImplTest {
         m.setExchange(e);
         e.setInMessage(m);
         e.setOutMessage(new MessageImpl());
-        Endpoint endpoint = EasyMock.createMock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         return m;
     }
@@ -196,58 +197,51 @@ public class ResponseImplTest {
 
     @Test
     public void testHasEntityWithEmptyStreamThatIsMarkSupported() throws Exception {
-        InputStream entityStream = EasyMock.createStrictMock(InputStream.class);
-        EasyMock.expect(entityStream.markSupported()).andReturn(true);
+        InputStream entityStream = mock(InputStream.class);
+        when(entityStream.markSupported()).thenReturn(true);
         entityStream.mark(1);
-        EasyMock.expect(entityStream.read()).andReturn(-1);
+        when(entityStream.read()).thenReturn(-1);
         entityStream.reset();
-        EasyMock.replay(entityStream);
         assertFalse(new ResponseImpl(200, entityStream).hasEntity());
-        EasyMock.verify(entityStream);
     }
 
     @Test
     public void testHasEntityWithNonEmptyStreamThatIsMarkSupported() throws Exception {
-        InputStream entityStream = EasyMock.createStrictMock(InputStream.class);
-        EasyMock.expect(entityStream.markSupported()).andReturn(true);
+        InputStream entityStream = mock(InputStream.class);
+        when(entityStream.markSupported()).thenReturn(true);
         entityStream.mark(1);
-        EasyMock.expect(entityStream.read()).andReturn(0);
+        when(entityStream.read()).thenReturn(0);
         entityStream.reset();
-        EasyMock.replay(entityStream);
         assertTrue(new ResponseImpl(200, entityStream).hasEntity());
-        EasyMock.verify(entityStream);
     }
 
     @Test
     public void testHasEntityWithEmptyStreamThatIsNotMarkSupported() throws Exception {
-        InputStream entityStream = EasyMock.createStrictMock(InputStream.class);
-        EasyMock.expect(entityStream.markSupported()).andReturn(false);
-        EasyMock.expect(entityStream.available()).andReturn(0);
-        EasyMock.expect(entityStream.read()).andReturn(-1);
-        EasyMock.replay(entityStream);
+        InputStream entityStream = mock(InputStream.class);
+        when(entityStream.markSupported()).thenReturn(false);
+        when(entityStream.available()).thenReturn(0);
+        when(entityStream.read()).thenReturn(-1);
         assertFalse(new ResponseImpl(200, entityStream).hasEntity());
-        EasyMock.verify(entityStream);
     }
 
     @Test
     public void testHasEntityWithNonEmptyStreamThatIsNotMarkSupportedButIsAvailableSupported() throws Exception {
-        InputStream entityStream = EasyMock.createStrictMock(InputStream.class);
-        EasyMock.expect(entityStream.markSupported()).andReturn(false);
-        EasyMock.expect(entityStream.available()).andReturn(10);
-        EasyMock.replay(entityStream);
+        InputStream entityStream = mock(InputStream.class);
+        when(entityStream.markSupported()).thenReturn(false);
+        when(entityStream.available()).thenReturn(10);
         assertTrue(new ResponseImpl(200, entityStream).hasEntity());
-        EasyMock.verify(entityStream);
     }
 
     @Test
     public void testHasEntityWithnNonEmptyStreamThatIsNotMarkSupportedNorAvailableSupported() throws Exception {
-        InputStream entityStream = EasyMock.createStrictMock(InputStream.class);
-        EasyMock.expect(entityStream.markSupported()).andReturn(false).once();
-        EasyMock.expect(entityStream.available()).andReturn(0).once();
-        EasyMock.expect(entityStream.read()).andReturn(0).once();
-        EasyMock.replay(entityStream);
+        InputStream entityStream = mock(InputStream.class);
+        when(entityStream.markSupported()).thenReturn(false);
+        when(entityStream.available()).thenReturn(0);
+        when(entityStream.read()).thenReturn(0);
         assertTrue(new ResponseImpl(200, entityStream).hasEntity());
-        EasyMock.verify(entityStream);
+        verify(entityStream, times(1)).markSupported();
+        verify(entityStream, times(1)).available();
+        verify(entityStream, times(1)).read();
     }
 
     @Test
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
index 076fba030a..ae6c97105b 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/UriInfoImplTest.java
@@ -43,24 +43,14 @@ import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.servlet.ServletDestination;
 
-import org.easymock.EasyMock;
-import org.easymock.IMocksControl;
-import org.junit.Before;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class UriInfoImplTest {
-
-    private IMocksControl control;
-
-    @Before
-    public void setUp() {
-        control = EasyMock.createNiceControl();
-        control.makeThreadSafe(true);
-    }
-
     @Test
     public void testResolve() {
         UriInfoImpl u = new UriInfoImpl(mockMessage("http://localhost:8080/baz/", null), null);
@@ -584,18 +574,15 @@ public class UriInfoImplTest {
     private Message mockMessage(String baseAddress, String pathInfo,
                                 String query, String fragment) {
         Message m = new MessageImpl();
-        control.reset();
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
-        ServletDestination d = control.createMock(ServletDestination.class);
+        ServletDestination d = mock(ServletDestination.class);
         e.setDestination(d);
         EndpointInfo epr = new EndpointInfo();
         epr.setAddress(baseAddress);
-        d.getEndpointInfo();
-        EasyMock.expectLastCall().andReturn(epr).anyTimes();
+        when(d.getEndpointInfo()).thenReturn(epr);
         m.put(Message.REQUEST_URI, pathInfo);
         m.put(Message.QUERY_STRING, query);
-        control.replay();
         return m;
     }
 
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProviderTest.java
index 52b9d38377..d833a3983f 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/lifecycle/PerRequestResourceProviderTest.java
@@ -28,12 +28,13 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class PerRequestResourceProviderTest {
 
@@ -57,13 +58,12 @@ public class PerRequestResourceProviderTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
index bf6daa896b..5ce7cbfc56 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/model/OperationResourceInfoTest.java
@@ -39,10 +39,11 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class OperationResourceInfoTest {
 
@@ -199,9 +200,8 @@ public class OperationResourceInfoTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Endpoint endpoint = EasyMock.createMock(Endpoint.class);
-        EasyMock.expect(endpoint.get("org.apache.cxf.jaxrs.comparator")).andReturn(null);
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.get("org.apache.cxf.jaxrs.comparator")).thenReturn(null);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProviderTest.java
index ef9ce9c935..e1255911f5 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/AbstractConfigurableProviderTest.java
@@ -21,10 +21,11 @@ package org.apache.cxf.jaxrs.provider;
 
 import org.apache.cxf.Bus;
 
-import org.easymock.EasyMock;
 import org.junit.Assert;
 import org.junit.Test;
 
+import static org.mockito.Mockito.mock;
+
 public class AbstractConfigurableProviderTest {
     /**
      * [CXF-7533] Make sure setter is functional.
@@ -33,7 +34,7 @@ public class AbstractConfigurableProviderTest {
     public void testSetBus() throws Exception {
 
         AbstractConfigurableProvider provider = new AbstractConfigurableProvider() { };
-        Bus bus = EasyMock.createMock(Bus.class);
+        Bus bus = mock(Bus.class);
 
         provider.setBus(bus);
         Assert.assertSame(bus, provider.getBus());
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
index 3abf98e77f..d2c9e14a12 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
@@ -96,7 +96,6 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
@@ -105,6 +104,8 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class JAXBElementProviderTest {
 
@@ -1666,13 +1667,12 @@ public class JAXBElementProviderTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
index 41f1766acb..c21a6742fc 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/ProviderFactoryTest.java
@@ -82,7 +82,6 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -95,6 +94,8 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class ProviderFactoryTest {
 
@@ -495,9 +496,8 @@ public class ProviderFactoryTest {
         Message m = new MessageImpl();
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
-        Endpoint endpoint = EasyMock.createMock(Endpoint.class);
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory);
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         assertSame(ProviderFactory.getInstance(m), factory);
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProviderTest.java
index 5dd097a793..e6db31adf7 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/XSLTJaxbProviderTest.java
@@ -46,11 +46,12 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.staxutils.StaxUtils;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class XSLTJaxbProviderTest {
 
@@ -265,13 +266,12 @@ public class XSLTJaxbProviderTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/springmvc/SpringViewResolverProviderTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/springmvc/SpringViewResolverProviderTest.java
index 4f969f9839..024dbe2e93 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/springmvc/SpringViewResolverProviderTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/springmvc/SpringViewResolverProviderTest.java
@@ -52,24 +52,24 @@ import org.springframework.web.servlet.ViewResolver;
 import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver;
 import org.springframework.web.servlet.view.BeanNameViewResolver;
 
-import org.easymock.EasyMockRule;
-import org.easymock.EasyMockSupport;
-import org.easymock.Mock;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doNothing;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.when;
 
-public class SpringViewResolverProviderTest extends EasyMockSupport {
+public class SpringViewResolverProviderTest {
 
     @Rule
-    public EasyMockRule rule = new EasyMockRule(this);
+    public MockitoRule rule = MockitoJUnit.rule();
 
     @Mock
     private ViewResolver viewResolverMock;
@@ -116,9 +116,9 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
     public void testIsWriteableEnum() throws Exception {
         String viewName = "/test";
         View view = expectGetView(viewName);
+        when(localeResolverMock.resolveLocale(any(HttpServletRequest.class))).thenReturn(locale);
         viewResolver.setClassResources(Collections.singletonMap(TestEnum.class.getName() + "."
                 + TestEnum.ONE, viewName));
-        replayAll();
         assertTrue(viewResolver.isWriteable(TestEnum.ONE.getClass(), null, null, null));
         assertEquals(view, viewResolver.getView(TestEnum.ONE.getClass(), TestEnum.ONE));
     }
@@ -127,8 +127,8 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
     public void testIsWriteableEnum2() {
         String viewName = "/test";
         View view = expectGetView(viewName);
+        when(localeResolverMock.resolveLocale(any(HttpServletRequest.class))).thenReturn(locale);
         viewResolver.setEnumResources(Collections.singletonMap(TestEnum.ONE, viewName));
-        replayAll();
         assertTrue(viewResolver.isWriteable(TestEnum.ONE.getClass(), null, null, null));
         assertEquals(view, viewResolver.getView(TestEnum.ONE.getClass(), TestEnum.ONE));
     }
@@ -138,10 +138,8 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
     public void testWriteTo() throws Exception {
         String viewName = "/test";
         expectWriteTo(viewName);
-        viewMock.render(anyObject(Map.class), anyObject(HttpServletRequest.class),
-                anyObject(HttpServletResponse.class));
-        expectLastCall();
-        replayAll();
+        doNothing().when(viewMock).render(any(Map.class), any(HttpServletRequest.class),
+                any(HttpServletResponse.class));
         viewResolver.writeTo(TestEnum.ONE, TestEnum.ONE.getClass(), null, new Annotation[] {},
                 MediaType.TEXT_HTML_TYPE,
                 new MultivaluedHashMap<String, Object>(), null);
@@ -153,16 +151,13 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
         String viewName = "/test";
         Exception exception = new RuntimeException("my exception");
         expectWriteTo(viewName);
-        viewMock.render(anyObject(Map.class), anyObject(HttpServletRequest.class),
-                anyObject(HttpServletResponse.class));
-        expectLastCall().andThrow(exception);
+        doThrow(exception).when(viewMock).render(any(Map.class), any(HttpServletRequest.class),
+                any(HttpServletResponse.class));
         requestMock.setAttribute(RequestDispatcher.ERROR_EXCEPTION, exception);
         requestMock.setAttribute(RequestDispatcher.ERROR_STATUS_CODE, 500);
         requestMock.setAttribute(RequestDispatcher.ERROR_MESSAGE, exception.getMessage());
-        expect(servletContextMock.getRequestDispatcher("/error")).andReturn(requestDispatcherMock);
-        requestDispatcherMock.forward(anyObject(HttpServletRequest.class), anyObject(HttpServletResponse.class));
-        expectLastCall();
-        replayAll();
+        when(servletContextMock.getRequestDispatcher("/error")).thenReturn(requestDispatcherMock);
+        doNothing().when(requestDispatcherMock).forward(any(HttpServletRequest.class), any(HttpServletResponse.class));
         viewResolver.writeTo(TestEnum.ONE, TestEnum.ONE.getClass(), null, new Annotation[] {},
                 MediaType.TEXT_HTML_TYPE,
                 new MultivaluedHashMap<String, Object>(), null);
@@ -174,16 +169,14 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
         String viewName = "/test";
         Exception exception = new RuntimeException("my exception");
         expectWriteTo(viewName);
-        viewMock.render(anyObject(Map.class), anyObject(HttpServletRequest.class),
-                anyObject(HttpServletResponse.class));
-        expectLastCall().andThrow(exception);
+        doThrow(exception).when(viewMock).render(any(Map.class), any(HttpServletRequest.class),
+                any(HttpServletResponse.class));
         requestMock.setAttribute(RequestDispatcher.ERROR_EXCEPTION, exception);
         requestMock.setAttribute(RequestDispatcher.ERROR_STATUS_CODE, 500);
         requestMock.setAttribute(RequestDispatcher.ERROR_MESSAGE, exception.getMessage());
-        expect(servletContextMock.getRequestDispatcher("/error")).andReturn(requestDispatcherMock);
-        requestDispatcherMock.forward(anyObject(HttpServletRequest.class), anyObject(HttpServletResponse.class));
-        expectLastCall().andThrow(new RuntimeException("internal"));
-        replayAll();
+        when(servletContextMock.getRequestDispatcher("/error")).thenReturn(requestDispatcherMock);
+        doThrow(new RuntimeException("internal")).when(requestDispatcherMock).forward(any(HttpServletRequest.class),
+                any(HttpServletResponse.class));
         viewResolver.writeTo(TestEnum.ONE, TestEnum.ONE.getClass(), null, new Annotation[] {},
                 MediaType.TEXT_HTML_TYPE,
                 new MultivaluedHashMap<String, Object>(), null);
@@ -196,10 +189,8 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
         String viewName = "/test";
         Exception exception = new RuntimeException("my exception");
         expectWriteTo(viewName);
-        viewMock.render(anyObject(Map.class), anyObject(HttpServletRequest.class),
-                anyObject(HttpServletResponse.class));
-        expectLastCall().andThrow(exception);
-        replayAll();
+        doThrow(exception).when(viewMock).render(any(Map.class), any(HttpServletRequest.class),
+                any(HttpServletResponse.class));
         viewResolver.writeTo(TestEnum.ONE, TestEnum.ONE.getClass(), null, new Annotation[] {},
                 MediaType.TEXT_HTML_TYPE,
                 new MultivaluedHashMap<String, Object>(), null);
@@ -216,9 +207,8 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
     }
 
     private View expectGetView(String viewName) {
-        expect(localeResolverMock.resolveLocale(anyObject(HttpServletRequest.class))).andReturn(locale);
         try {
-            expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
+            when(viewResolverMock.resolveViewName(viewName, locale)).thenReturn(viewMock);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
@@ -228,9 +218,9 @@ public class SpringViewResolverProviderTest extends EasyMockSupport {
     private void expectWriteTo(String viewName) {
         expectGetView(viewName);
         viewResolver.setEnumResources(Collections.singletonMap(TestEnum.ONE, viewName));
-        expect(localeResolverMock.resolveLocale(anyObject(HttpServletRequest.class))).andReturn(locale);
+        when(localeResolverMock.resolveLocale(any(HttpServletRequest.class))).thenReturn(locale);
         try {
-            expect(viewResolverMock.resolveViewName(viewName, locale)).andReturn(viewMock);
+            when(viewResolverMock.resolveViewName(viewName, locale)).thenReturn(viewMock);
         } catch (Exception e) {
             throw new RuntimeException(e);
         }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/FormUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/FormUtilsTest.java
index ae44f4b6ed..61a5844ce2 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/FormUtilsTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/FormUtilsTest.java
@@ -29,10 +29,11 @@ import jakarta.ws.rs.core.MultivaluedMap;
 import org.apache.cxf.jaxrs.impl.MetadataMap;
 import org.apache.cxf.message.Message;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class FormUtilsTest {
 
@@ -52,7 +53,6 @@ public class FormUtilsTest {
     @Test
     public void populateMapFromStringFromHTTP() {
         mockObjects(null);
-        EasyMock.replay(mockMessage, mockRequest);
 
         MultivaluedMap<String, String> params = new MetadataMap<>();
         FormUtils.populateMapFromString(params, mockMessage, null, StandardCharsets.UTF_8.name(),
@@ -66,7 +66,6 @@ public class FormUtilsTest {
     @Test
     public void populateMapFromStringFromHTTPWithProp() {
         mockObjects("false");
-        EasyMock.replay(mockMessage, mockRequest);
 
         MultivaluedMap<String, String> params = new MetadataMap<>();
         FormUtils.populateMapFromString(params, mockMessage, null, StandardCharsets.UTF_8.name(),
@@ -78,7 +77,6 @@ public class FormUtilsTest {
     @Test
     public void populateMapFromStringFromBody() {
         mockObjects(null);
-        EasyMock.replay(mockMessage, mockRequest);
 
         MultivaluedMap<String, String> params = new MetadataMap<>();
         String postBody = FORM_PARAM1 + "=" + FORM_PARAM_VALUE1 + "&" + FORM_PARAM2 + "=" + FORM_PARAM_VALUE2;
@@ -92,20 +90,18 @@ public class FormUtilsTest {
 
 
     private void mockObjects(String formPropertyValue) {
-        mockMessage = EasyMock.createMock(Message.class);
-        EasyMock.expect(mockMessage.getContextualProperty(FormUtils.FORM_PARAMS_FROM_HTTP_PARAMS))
-            .andReturn(formPropertyValue).anyTimes();
-        EasyMock.expect(mockMessage.getExchange()).andReturn(null).anyTimes();
-        EasyMock.expect(mockMessage.put(FormUtils.FORM_PARAM_MAP_DECODED, true))
-            .andReturn(null).anyTimes();
+        mockMessage = mock(Message.class);
+        when(mockMessage.getContextualProperty(FormUtils.FORM_PARAMS_FROM_HTTP_PARAMS))
+            .thenReturn(formPropertyValue);
+        when(mockMessage.getExchange()).thenReturn(null);
+        when(mockMessage.put(FormUtils.FORM_PARAM_MAP_DECODED, true))
+            .thenReturn(null);
         
-        mockRequest = EasyMock.createMock(HttpServletRequest.class);
+        mockRequest = mock(HttpServletRequest.class);
         String[] httpParamNames = {HTTP_PARAM1, HTTP_PARAM2};
         Enumeration<String> httpParamsEnum = Collections.enumeration(Arrays.asList(httpParamNames));
-        EasyMock.expect(mockRequest.getParameterNames()).andReturn(httpParamsEnum).anyTimes();
-        EasyMock.expect(mockRequest.getParameterValues(HTTP_PARAM1)).andReturn(new String[] {HTTP_PARAM_VALUE1})
-            .anyTimes();
-        EasyMock.expect(mockRequest.getParameterValues(HTTP_PARAM2)).andReturn(new String[] {HTTP_PARAM_VALUE2})
-            .anyTimes();
+        when(mockRequest.getParameterNames()).thenReturn(httpParamsEnum);
+        when(mockRequest.getParameterValues(HTTP_PARAM1)).thenReturn(new String[] {HTTP_PARAM_VALUE1});
+        when(mockRequest.getParameterValues(HTTP_PARAM2)).thenReturn(new String[] {HTTP_PARAM_VALUE2});
     }
 }
\ No newline at end of file
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
index 81da1a3e79..fd5b8833d0 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/HttpUtilsTest.java
@@ -33,12 +33,13 @@ import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.transport.Destination;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class HttpUtilsTest {
 
@@ -225,22 +226,17 @@ public class HttpUtilsTest {
         final String baseURI = "HTTP://LoCALHoST:8080/STORE";
         
         Message m = new MessageImpl();
-        HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, req);
         Exchange exchange = new ExchangeImpl();
         
-        req.getRequestURL();
-        EasyMock.expectLastCall().andReturn(new StringBuffer(baseURI));
-        req.getPathInfo();
-        EasyMock.expectLastCall().andReturn("/STORE");
-        req.getContextPath();
-        EasyMock.expectLastCall().andReturn("/");
-        req.getServletPath();
-        EasyMock.expectLastCall().andReturn("/");
-        EasyMock.replay(req);
+        when(req.getRequestURL()).thenReturn(new StringBuffer(baseURI));
+        when(req.getPathInfo()).thenReturn("/STORE");
+        when(req.getContextPath()).thenReturn("/");
+        when(req.getServletPath()).thenReturn("/");
 
         m.setExchange(exchange);
-        Destination dest = EasyMock.createMock(Destination.class);
+        Destination dest = mock(Destination.class);
         exchange.setDestination(dest);
         m.put(Message.BASE_PATH, baseURI);
         String address = HttpUtils.getBaseAddress(m);
@@ -250,15 +246,11 @@ public class HttpUtilsTest {
     @Test
     public void testReplaceAnyIPAddress() {
         Message m = new MessageImpl();
-        HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, req);
-        req.getScheme();
-        EasyMock.expectLastCall().andReturn("http");
-        req.getServerName();
-        EasyMock.expectLastCall().andReturn("localhost");
-        req.getServerPort();
-        EasyMock.expectLastCall().andReturn(8080);
-        EasyMock.replay(req);
+        when(req.getScheme()).thenReturn("http");
+        when(req.getServerName()).thenReturn("localhost");
+        when(req.getServerPort()).thenReturn(8080);
         URI u = HttpUtils.toAbsoluteUri(URI.create("http://0.0.0.0/bar/foo"), m);
         assertEquals("http://localhost:8080/bar/foo", u.toString());
     }
@@ -274,15 +266,11 @@ public class HttpUtilsTest {
 
     private void doTestReplaceAnyIPAddressWithPort(boolean anyIp) {
         Message m = new MessageImpl();
-        HttpServletRequest req = EasyMock.createMock(HttpServletRequest.class);
+        HttpServletRequest req = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, req);
-        req.getScheme();
-        EasyMock.expectLastCall().andReturn("http");
-        req.getServerName();
-        EasyMock.expectLastCall().andReturn("localhost");
-        req.getServerPort();
-        EasyMock.expectLastCall().andReturn(8080);
-        EasyMock.replay(req);
+        when(req.getScheme()).thenReturn("http");
+        when(req.getServerName()).thenReturn("localhost");
+        when(req.getServerPort()).thenReturn(8080);
         String host = anyIp ? "0.0.0.0" : "127.0.0.1";
         URI u = HttpUtils.toAbsoluteUri(URI.create("http://" + host + ":8080/bar/foo"), m);
         assertEquals("http://localhost:8080/bar/foo", u.toString());
@@ -299,7 +287,7 @@ public class HttpUtilsTest {
         Message m = new MessageImpl();
         Exchange exchange = new ExchangeImpl();
         m.setExchange(exchange);
-        Destination dest = EasyMock.createMock(Destination.class);
+        Destination dest = mock(Destination.class);
         exchange.setDestination(dest);
         m.put(Message.BASE_PATH, baseURI);
         String address = HttpUtils.getBaseAddress(m);
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
index 16ed50613e..0573f039db 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/InjectionUtilsTest.java
@@ -51,13 +51,14 @@ import org.apache.cxf.message.ExchangeImpl;
 import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 
-import org.easymock.EasyMock;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class InjectionUtilsTest {
 
@@ -284,13 +285,12 @@ public class InjectionUtilsTest {
         Exchange e = new ExchangeImpl();
         m.setExchange(e);
         e.setInMessage(m);
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName())).andReturn(factory).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName())).thenReturn(factory);
         e.put(Endpoint.class, endpoint);
         return m;
     }
diff --git a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java
index 4196c068d3..731697f74b 100644
--- a/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java
+++ b/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/utils/JAXRSUtilsTest.java
@@ -105,7 +105,6 @@ import org.apache.cxf.message.Message;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.transport.http.AbstractHTTPDestination;
 
-import org.easymock.EasyMock;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -117,6 +116,8 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
 
 public class JAXRSUtilsTest {
 
@@ -1768,15 +1769,11 @@ public class JAXRSUtilsTest {
                                                      ServletConfig.class}),
                 cri);
         ori.setHttpMethod("GET");
-        HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
+        HttpServletRequest request = mock(HttpServletRequest.class);
         HttpServletResponse response = new HttpServletResponseFilter(
-                                           EasyMock.createMock(HttpServletResponse.class), null);
-        ServletContext context = EasyMock.createMock(ServletContext.class);
-        ServletConfig config = EasyMock.createMock(ServletConfig.class);
-
-        EasyMock.replay(request);
-        EasyMock.replay(context);
-        EasyMock.replay(config);
+                                           mock(HttpServletResponse.class), null);
+        ServletContext context = mock(ServletContext.class);
+        ServletConfig config = mock(ServletConfig.class);
 
         Message m = createMessage();
         m.put(AbstractHTTPDestination.HTTP_REQUEST, request);
@@ -1806,7 +1803,7 @@ public class JAXRSUtilsTest {
 
         Message m = createMessage();
         m.put(Message.PROTOCOL_HEADERS, new HashMap<String, List<String>>());
-        HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
+        HttpServletResponse response = mock(HttpServletResponse.class);
         m.put(AbstractHTTPDestination.HTTP_RESPONSE, response);
 
         InjectionUtils.injectContextFields(c, ori.getClassResourceInfo(), m);
@@ -1828,11 +1825,11 @@ public class JAXRSUtilsTest {
 
         Message m = createMessage();
         m.put(Message.PROTOCOL_HEADERS, new HashMap<String, List<String>>());
-        ServletContext servletContextMock = EasyMock.createNiceMock(ServletContext.class);
+        ServletContext servletContextMock = mock(ServletContext.class);
         m.put(AbstractHTTPDestination.HTTP_CONTEXT, servletContextMock);
-        HttpServletRequest httpRequest = EasyMock.createNiceMock(HttpServletRequest.class);
+        HttpServletRequest httpRequest = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, httpRequest);
-        HttpServletResponse httpResponse = EasyMock.createMock(HttpServletResponse.class);
+        HttpServletResponse httpResponse = mock(HttpServletResponse.class);
         m.put(AbstractHTTPDestination.HTTP_RESPONSE, httpResponse);
 
         InjectionUtils.injectContextProxies(cri, cri.getResourceProvider().getInstance(null));
@@ -1876,11 +1873,11 @@ public class JAXRSUtilsTest {
         cri.setResourceProvider(new SingletonResourceProvider(c));
 
         Message m = createMessage();
-        ServletContext servletContextMock = EasyMock.createNiceMock(ServletContext.class);
+        ServletContext servletContextMock = mock(ServletContext.class);
         m.put(AbstractHTTPDestination.HTTP_CONTEXT, servletContextMock);
-        HttpServletRequest httpRequest = EasyMock.createNiceMock(HttpServletRequest.class);
+        HttpServletRequest httpRequest = mock(HttpServletRequest.class);
         m.put(AbstractHTTPDestination.HTTP_REQUEST, httpRequest);
-        HttpServletResponse httpResponse = EasyMock.createMock(HttpServletResponse.class);
+        HttpServletResponse httpResponse = mock(HttpServletResponse.class);
         m.put(AbstractHTTPDestination.HTTP_RESPONSE, httpResponse);
         InjectionUtils.injectContextProxies(cri, cri.getResourceProvider().getInstance(null));
         InjectionUtils.injectContextFields(c, cri, m);
@@ -1997,7 +1994,7 @@ public class JAXRSUtilsTest {
                                                                                        new Class[]{}), cri);
 
         Message m = createMessage();
-        HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
+        HttpServletResponse response = mock(HttpServletResponse.class);
         m.put(AbstractHTTPDestination.HTTP_RESPONSE, response);
         Customer c = new Customer();
         ContextResolver<JAXBContext> cr = new JAXBContextProvider();
@@ -2020,12 +2017,9 @@ public class JAXRSUtilsTest {
         Customer c = new Customer();
 
         // Creating mocks for the servlet request, response and context
-        HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class);
-        HttpServletResponse response = EasyMock.createMock(HttpServletResponse.class);
-        ServletContext context = EasyMock.createMock(ServletContext.class);
-        EasyMock.replay(request);
-        EasyMock.replay(response);
-        EasyMock.replay(context);
+        HttpServletRequest request = mock(HttpServletRequest.class);
+        HttpServletResponse response = mock(HttpServletResponse.class);
+        ServletContext context = mock(ServletContext.class);
 
         Message m = createMessage();
         m.put(AbstractHTTPDestination.HTTP_REQUEST, request);
@@ -2148,15 +2142,14 @@ public class JAXRSUtilsTest {
     }
 
     private static Endpoint mockEndpoint() {
-        Endpoint endpoint = EasyMock.mock(Endpoint.class);
-        EasyMock.expect(endpoint.getEndpointInfo()).andReturn(null).anyTimes();
-        EasyMock.expect(endpoint.get(Application.class.getName())).andReturn(null);
-        EasyMock.expect(endpoint.get("org.apache.cxf.jaxrs.comparator")).andReturn(null);
-        EasyMock.expect(endpoint.size()).andReturn(0).anyTimes();
-        EasyMock.expect(endpoint.isEmpty()).andReturn(true).anyTimes();
-        EasyMock.expect(endpoint.get(ServerProviderFactory.class.getName()))
-                .andReturn(ServerProviderFactory.getInstance()).anyTimes();
-        EasyMock.replay(endpoint);
+        Endpoint endpoint = mock(Endpoint.class);
+        when(endpoint.getEndpointInfo()).thenReturn(null);
+        when(endpoint.get(Application.class.getName())).thenReturn(null);
+        when(endpoint.get("org.apache.cxf.jaxrs.comparator")).thenReturn(null);
+        when(endpoint.size()).thenReturn(0);
+        when(endpoint.isEmpty()).thenReturn(true);
+        when(endpoint.get(ServerProviderFactory.class.getName()))
+                .thenReturn(ServerProviderFactory.getInstance());
         return endpoint;
     }