You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by ma...@apache.org on 2016/10/23 20:12:22 UTC
[1/2] logging-log4j2 git commit: Migrate unit tests to Mockito 2.x
Repository: logging-log4j2
Updated Branches:
refs/heads/master f3e9ea13f -> 78c6a1fca
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContainerInitializerTest.java
----------------------------------------------------------------------
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContainerInitializerTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContainerInitializerTest.java
index a4e6a6c..0cd3988 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContainerInitializerTest.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContainerInitializerTest.java
@@ -24,156 +24,125 @@ import javax.servlet.FilterRegistration;
import javax.servlet.ServletContext;
import org.apache.logging.log4j.util.Strings;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.BDDMockito.willThrow;
+import static org.mockito.Mockito.mock;
+@RunWith(MockitoJUnitRunner.class)
public class Log4jServletContainerInitializerTest {
+ @Mock
private ServletContext servletContext;
+ @Mock
private Log4jWebLifeCycle initializer;
+ @Captor
+ private ArgumentCaptor<Class<? extends Filter>> filterCaptor;
+ @Captor
+ private ArgumentCaptor<EventListener> listenerCaptor;
private Log4jServletContainerInitializer containerInitializer;
@Before
public void setUp() {
- this.servletContext = createStrictMock(ServletContext.class);
- this.initializer = createStrictMock(Log4jWebLifeCycle.class);
-
this.containerInitializer = new Log4jServletContainerInitializer();
}
- @After
- public void tearDown() {
- verify(this.servletContext, this.initializer);
- }
-
@Test
public void testOnStartupWithServletVersion2_x() throws Exception {
- expect(this.servletContext.getMajorVersion()).andReturn(2);
-
- replay(this.servletContext, this.initializer);
+ given(servletContext.getMajorVersion()).willReturn(2);
this.containerInitializer.onStartup(null, this.servletContext);
}
@Test
public void testOnStartupWithServletVersion3_xEffectiveVersion2_x() throws Exception {
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(2);
-
- replay(this.servletContext, this.initializer);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(2);
this.containerInitializer.onStartup(null, this.servletContext);
}
@Test
public void testOnStartupWithServletVersion3_xEffectiveVersion3_xDisabledTrue() throws Exception {
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(3);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))
- .andReturn("true");
-
- replay(this.servletContext, this.initializer);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(3);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))).willReturn(
+ "true");
this.containerInitializer.onStartup(null, this.servletContext);
}
@Test
public void testOnStartupWithServletVersion3_xEffectiveVersion3_xDisabledTRUE() throws Exception {
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(3);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))
- .andReturn("TRUE");
-
- replay(this.servletContext, this.initializer);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(3);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))).willReturn(
+ "TRUE");
this.containerInitializer.onStartup(null, this.servletContext);
}
@Test
public void testOnStartupWithServletVersion3_xEffectiveVersion3_x() throws Exception {
- final FilterRegistration.Dynamic registration = createStrictMock(FilterRegistration.Dynamic.class);
-
- final Capture<EventListener> listenerCapture = EasyMock.newCapture();
- final Capture<Class<? extends Filter>> filterCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(3);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))
- .andReturn(null);
- expect(this.servletContext.addFilter(eq("log4jServletFilter"), capture(filterCapture))).andReturn(registration);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.start();
- expectLastCall();
- this.initializer.setLoggerContext();
- expectLastCall();
- this.servletContext.addListener(capture(listenerCapture));
- expectLastCall();
- registration.setAsyncSupported(true);
- expectLastCall();
- registration.addMappingForUrlPatterns(eq(EnumSet.allOf(DispatcherType.class)), eq(false), eq("/*"));
- expectLastCall();
-
- replay(this.servletContext, this.initializer, registration);
-
- this.containerInitializer.onStartup(null, this.servletContext);
-
- assertNotNull("The listener should not be null.", listenerCapture.getValue());
+ final FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(3);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))).willReturn(
+ null);
+ given(servletContext.addFilter(eq("log4jServletFilter"), filterCaptor.capture())).willReturn(registration);
+ given(servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).willReturn(initializer);
+
+ containerInitializer.onStartup(null, servletContext);
+
+ then(initializer).should().start();
+ then(initializer).should().setLoggerContext();
+ then(servletContext).should().addListener(listenerCaptor.capture());
+ then(registration).should().setAsyncSupported(eq(true));
+ then(registration).should().addMappingForUrlPatterns(eq(EnumSet.allOf(DispatcherType.class)), eq(false), eq("/*"));
+
+ assertNotNull("The listener should not be null.", listenerCaptor.getValue());
assertSame("The listener is not correct.", Log4jServletContextListener.class,
- listenerCapture.getValue().getClass());
-
- assertNotNull("The filter should not be null.", filterCapture.getValue());
- assertSame("The filter is not correct.", Log4jServletFilter.class, filterCapture.getValue());
+ listenerCaptor.getValue().getClass());
- verify(registration);
+ assertNotNull("The filter should not be null.", filterCaptor.getValue());
+ assertSame("The filter is not correct.", Log4jServletFilter.class, filterCaptor.getValue());
}
@Test
public void testOnStartupCanceledDueToPreExistingFilter() throws Exception {
- final Capture<Class<? extends Filter>> filterCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(3);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))
- .andReturn("false");
- expect(this.servletContext.addFilter(eq("log4jServletFilter"), capture(filterCapture))).andReturn(null);
-
- replay(this.servletContext, this.initializer);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(3);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))).willReturn(
+ "false");
+ given(servletContext.addFilter(eq("log4jServletFilter"), filterCaptor.capture())).willReturn(null);
this.containerInitializer.onStartup(null, this.servletContext);
- assertNotNull("The filter should not be null.", filterCapture.getValue());
- assertSame("The filter is not correct.", Log4jServletFilter.class, filterCapture.getValue());
+ assertNotNull("The filter should not be null.", filterCaptor.getValue());
+ assertSame("The filter is not correct.", Log4jServletFilter.class, filterCaptor.getValue());
}
@Test
public void testOnStartupFailedDueToInitializerFailure() throws Exception {
- final FilterRegistration.Dynamic registration = createStrictMock(FilterRegistration.Dynamic.class);
-
- final Capture<Class<? extends Filter>> filterCapture = EasyMock.newCapture();
+ final FilterRegistration.Dynamic registration = mock(FilterRegistration.Dynamic.class);
final IllegalStateException exception = new IllegalStateException(Strings.EMPTY);
-
- expect(this.servletContext.getMajorVersion()).andReturn(3);
- expect(this.servletContext.getEffectiveMajorVersion()).andReturn(3);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))
- .andReturn("balderdash");
- expect(this.servletContext.addFilter(eq("log4jServletFilter"), capture(filterCapture))).andReturn(registration);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.start();
- expectLastCall().andThrow(exception);
-
- replay(this.servletContext, this.initializer, registration);
+ given(servletContext.getMajorVersion()).willReturn(3);
+ given(servletContext.getEffectiveMajorVersion()).willReturn(3);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_AUTO_INITIALIZATION_DISABLED))).willReturn(
+ "balderdash");
+ given(servletContext.addFilter(eq("log4jServletFilter"), filterCaptor.capture())).willReturn(registration);
+ given(servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).willReturn(initializer);
+ willThrow(exception).given(initializer).start();
try {
this.containerInitializer.onStartup(null, this.servletContext);
@@ -182,9 +151,8 @@ public class Log4jServletContainerInitializerTest {
assertSame("The exception is not correct.", exception, e);
}
- assertNotNull("The filter should not be null.", filterCapture.getValue());
- assertSame("The filter is not correct.", Log4jServletFilter.class, filterCapture.getValue());
-
- verify(registration);
+ then(initializer).should().start();
+ assertNotNull("The filter should not be null.", filterCaptor.getValue());
+ assertSame("The filter is not correct.", Log4jServletFilter.class, filterCaptor.getValue());
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContextListenerTest.java
----------------------------------------------------------------------
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContextListenerTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContextListenerTest.java
index a1d90ff..7be7b9c 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContextListenerTest.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletContextListenerTest.java
@@ -20,73 +20,51 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import org.apache.logging.log4j.util.Strings;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.BDDMockito.willThrow;
+@RunWith(MockitoJUnitRunner.class)
public class Log4jServletContextListenerTest {
+ @Mock
private ServletContextEvent event;
+ @Mock
private ServletContext servletContext;
+ @Mock
private Log4jWebLifeCycle initializer;
private Log4jServletContextListener listener;
@Before
public void setUp() {
- this.event = createStrictMock(ServletContextEvent.class);
- this.servletContext = createStrictMock(ServletContext.class);
- this.initializer = createStrictMock(Log4jWebLifeCycle.class);
-
this.listener = new Log4jServletContextListener();
- }
-
- @After
- public void tearDown() {
- verify(this.event, this.servletContext, this.initializer);
+ given(event.getServletContext()).willReturn(servletContext);
+ given(servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).willReturn(initializer);
}
@Test
public void testInitAndDestroy() throws Exception {
- expect(this.event.getServletContext()).andReturn(this.servletContext);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.start();
- expectLastCall();
- this.initializer.setLoggerContext();
- expectLastCall();
-
- replay(this.event, this.servletContext, this.initializer);
-
this.listener.contextInitialized(this.event);
- verify(this.event, this.servletContext, this.initializer);
- reset(this.event, this.servletContext, this.initializer);
-
- this.initializer.clearLoggerContext();
- expectLastCall();
- this.initializer.stop();
- expectLastCall();
-
- replay(this.event, this.servletContext, this.initializer);
+ then(initializer).should().start();
+ then(initializer).should().setLoggerContext();
this.listener.contextDestroyed(this.event);
+
+ then(initializer).should().clearLoggerContext();
+ then(initializer).should().stop();
}
@Test
public void testInitFailure() throws Exception {
- expect(this.event.getServletContext()).andReturn(this.servletContext);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.start();
- expectLastCall().andThrow(new IllegalStateException(Strings.EMPTY));
-
- replay(this.event, this.servletContext, this.initializer);
+ willThrow(new IllegalStateException(Strings.EMPTY)).given(initializer).start();
try {
this.listener.contextInitialized(this.event);
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java
----------------------------------------------------------------------
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java
index bf6a84f..1fb72a3 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java
@@ -22,131 +22,87 @@ import javax.servlet.ServletContext;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.same;
-import static org.easymock.EasyMock.verify;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.reset;
+@RunWith(MockitoJUnitRunner.class)
public class Log4jServletFilterTest {
+ @Mock
private FilterConfig filterConfig;
+ @Mock
private ServletContext servletContext;
+ @Mock
private Log4jWebLifeCycle initializer;
+ @Mock
+ private ServletRequest request;
+ @Mock
+ private ServletResponse response;
+ @Mock
+ private FilterChain chain;
private Log4jServletFilter filter;
@Before
public void setUp() {
- this.filterConfig = createStrictMock(FilterConfig.class);
- this.servletContext = createStrictMock(ServletContext.class);
- this.initializer = createStrictMock(Log4jWebLifeCycle.class);
-
+ given(filterConfig.getServletContext()).willReturn(servletContext);
+ given(servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).willReturn(initializer);
this.filter = new Log4jServletFilter();
}
- @After
- public void tearDown() {
- verify(this.filterConfig, this.servletContext, this.initializer);
- }
-
@Test
public void testInitAndDestroy() throws Exception {
- expect(this.filterConfig.getServletContext()).andReturn(this.servletContext);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.clearLoggerContext();
- expectLastCall();
-
- replay(this.filterConfig, this.servletContext, this.initializer);
-
this.filter.init(this.filterConfig);
- verify(this.filterConfig, this.servletContext, this.initializer);
- reset(this.filterConfig, this.servletContext, this.initializer);
-
- this.initializer.setLoggerContext();
- expectLastCall();
-
- replay(this.filterConfig, this.servletContext, this.initializer);
+ then(initializer).should().clearLoggerContext();
this.filter.destroy();
+
+ then(initializer).should().setLoggerContext();
}
@Test(expected = IllegalStateException.class)
public void testDestroy() {
- replay(this.filterConfig, this.servletContext, this.initializer);
-
this.filter.destroy();
}
@Test
public void testDoFilterFirstTime() throws Exception {
- expect(this.filterConfig.getServletContext()).andReturn(this.servletContext);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.clearLoggerContext();
- expectLastCall();
-
- replay(this.filterConfig, this.servletContext, this.initializer);
-
this.filter.init(this.filterConfig);
- verify(this.filterConfig, this.servletContext, this.initializer);
- reset(this.filterConfig, this.servletContext, this.initializer);
-
- final ServletRequest request = createStrictMock(ServletRequest.class);
- final ServletResponse response = createStrictMock(ServletResponse.class);
- final FilterChain chain = createStrictMock(FilterChain.class);
-
- expect(request.getAttribute(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE)).andReturn(null);
- request.setAttribute(eq(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE), eq(Boolean.TRUE));
- expectLastCall();
- this.initializer.setLoggerContext();
- expectLastCall();
- chain.doFilter(same(request), same(response));
- expectLastCall();
- this.initializer.clearLoggerContext();
- expectLastCall();
+ then(initializer).should().clearLoggerContext();
+ reset(initializer);
- replay(this.filterConfig, this.servletContext, this.initializer, request, response, chain);
+ given(request.getAttribute(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE)).willReturn(null);
this.filter.doFilter(request, response, chain);
- verify(request, response, chain);
+ then(request).should().setAttribute(eq(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE), eq(true));
+ then(initializer).should().setLoggerContext();
+ then(chain).should().doFilter(same(request), same(response));
+ then(chain).shouldHaveNoMoreInteractions();
+ then(initializer).should().clearLoggerContext();
}
@Test
public void testDoFilterSecondTime() throws Exception {
- expect(this.filterConfig.getServletContext()).andReturn(this.servletContext);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(this.initializer);
- this.initializer.clearLoggerContext();
- expectLastCall();
-
- replay(this.filterConfig, this.servletContext, this.initializer);
-
this.filter.init(this.filterConfig);
- verify(this.filterConfig, this.servletContext, this.initializer);
- reset(this.filterConfig, this.servletContext, this.initializer);
-
- final ServletRequest request = createStrictMock(ServletRequest.class);
- final ServletResponse response = createStrictMock(ServletResponse.class);
- final FilterChain chain = createStrictMock(FilterChain.class);
-
- expect(request.getAttribute(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE)).andReturn(true);
- expectLastCall();
- chain.doFilter(same(request), same(response));
- expectLastCall();
+ then(initializer).should().clearLoggerContext();
- replay(this.filterConfig, this.servletContext, this.initializer, request, response, chain);
+ given(request.getAttribute(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE)).willReturn(true);
this.filter.doFilter(request, response, chain);
- verify(request, response, chain);
+ then(chain).should().doFilter(same(request), same(response));
+ then(chain).shouldHaveNoMoreInteractions();
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
----------------------------------------------------------------------
diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
index 8ed6046..7949e49 100644
--- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
+++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jWebInitializerImplTest.java
@@ -20,71 +20,56 @@ import javax.servlet.ServletContext;
import org.apache.logging.log4j.core.LoggerContext;
import org.apache.logging.log4j.core.impl.ContextAnchor;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-import org.junit.After;
import org.junit.Before;
+import org.junit.Rule;
import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+@RunWith(MockitoJUnitRunner.class)
public class Log4jWebInitializerImplTest {
+ @Mock
private ServletContext servletContext;
+ @Captor
+ private ArgumentCaptor<Log4jWebLifeCycle> initializerCaptor;
+ @Captor
+ private ArgumentCaptor<org.apache.logging.log4j.spi.LoggerContext> loggerContextCaptor;
+ @Rule
+ public ExpectedException expectedException = ExpectedException.none();
private Log4jWebInitializerImpl initializerImpl;
@Before
public void setUp() {
- final Capture<Log4jWebLifeCycle> initializerCapture = EasyMock.newCapture();
-
- this.servletContext = createStrictMock(ServletContext.class);
- expect(this.servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).andReturn(null);
- this.servletContext.setAttribute(eq(Log4jWebSupport.SUPPORT_ATTRIBUTE), capture(initializerCapture));
- expectLastCall();
-
- replay(this.servletContext);
+ given(servletContext.getAttribute(Log4jWebSupport.SUPPORT_ATTRIBUTE)).willReturn(null);
final Log4jWebLifeCycle initializer = WebLoggerContextUtils.getWebLifeCycle(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.SUPPORT_ATTRIBUTE), initializerCaptor.capture());
assertNotNull("The initializer should not be null.", initializer);
- assertSame("The capture is not correct.", initializer, initializerCapture.getValue());
+ assertSame("The capture is not correct.", initializer, initializerCaptor.getValue());
assertTrue("The initializer is not correct.", initializer instanceof Log4jWebInitializerImpl);
- verify(this.servletContext);
- reset(this.servletContext);
this.initializerImpl = (Log4jWebInitializerImpl) initializer;
}
- @After
- public void tearDown() {
- verify(this.servletContext);
- }
-
@Test
public void testDeinitializeBeforeInitialize() {
- replay(this.servletContext);
-
- try {
- this.initializerImpl.stop();
- fail("Expected an IllegalStateException.");
- } catch (final IllegalStateException ignore) {
-
- }
+ expectedException.expect(IllegalStateException.class);
+ this.initializerImpl.stop();
}
@Test
public void testSetLoggerContextBeforeInitialize() {
- replay(this.servletContext);
-
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.setLoggerContext();
@@ -94,8 +79,6 @@ public class Log4jWebInitializerImplTest {
@Test
public void testClearLoggerContextBeforeInitialize() {
- replay(this.servletContext);
-
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.clearLoggerContext();
@@ -105,32 +88,17 @@ public class Log4jWebInitializerImplTest {
@Test
public void testInitializeWithNoParametersThenSetLoggerContextThenDeinitialize() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn(null);
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld01");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
- assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn(null);
+ given(servletContext.getServletContextName()).willReturn("helloWorld01");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
- final org.apache.logging.log4j.spi.LoggerContext loggerContext =
- (org.apache.logging.log4j.spi.LoggerContext)loggerContextCapture.getValue();
-
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
+ final org.apache.logging.log4j.spi.LoggerContext loggerContext = loggerContextCaptor.getValue();
assertNull("The context should still be null.", ContextAnchor.THREAD_CONTEXT.get());
@@ -144,19 +112,9 @@ public class Log4jWebInitializerImplTest {
assertNull("The context should be null again.", ContextAnchor.THREAD_CONTEXT.get());
- verify(this.servletContext);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
-
this.initializerImpl.stop();
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
assertNull("The context should again still be null.", ContextAnchor.THREAD_CONTEXT.get());
@@ -167,33 +125,19 @@ public class Log4jWebInitializerImplTest {
@Test
public void testInitializeWithClassLoaderNoParametersThenSetLoggerContextThenDeinitialize() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn("false");
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld02");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- expect(this.servletContext.getClassLoader()).andReturn(this.getClass().getClassLoader());
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn("false");
+ given(servletContext.getServletContextName()).willReturn("helloWorld02");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
+ given(servletContext.getClassLoader()).willReturn(getClass().getClassLoader());
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
- final org.apache.logging.log4j.spi.LoggerContext loggerContext =
- (org.apache.logging.log4j.spi.LoggerContext)loggerContextCapture.getValue();
-
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
+ final org.apache.logging.log4j.spi.LoggerContext loggerContext = loggerContextCaptor.getValue();
assertNull("The context should still be null.", ContextAnchor.THREAD_CONTEXT.get());
@@ -207,19 +151,9 @@ public class Log4jWebInitializerImplTest {
assertNull("The context should be null again.", ContextAnchor.THREAD_CONTEXT.get());
- verify(this.servletContext);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
-
this.initializerImpl.stop();
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
assertNull("The context should again still be null.", ContextAnchor.THREAD_CONTEXT.get());
@@ -230,168 +164,95 @@ public class Log4jWebInitializerImplTest {
@Test
public void testInitializeIsIdempotent() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn("nothing");
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld03");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- expect(this.servletContext.getClassLoader()).andReturn(this.getClass().getClassLoader());
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn("nothing");
+ given(servletContext.getServletContextName()).willReturn("helloWorld03");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
+ given(servletContext.getClassLoader()).willReturn(getClass().getClassLoader());
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
-
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
this.initializerImpl.start();
this.initializerImpl.start();
this.initializerImpl.start();
-
- verify(this.servletContext);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
-
this.initializerImpl.stop();
+
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
}
@Test
public void testInitializeFailsAfterDeinitialize() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn(null);
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld04");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- expect(this.servletContext.getClassLoader()).andReturn(this.getClass().getClassLoader());
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn(null);
+ given(servletContext.getServletContextName()).willReturn("helloWorld04");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
+ given(servletContext.getClassLoader()).willReturn(getClass().getClassLoader());
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
-
- verify(this.servletContext);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
this.initializerImpl.stop();
- try {
- this.initializerImpl.start();
- fail("Expected an IllegalStateException.");
- } catch (final IllegalStateException ignore) {
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
- }
+ expectedException.expect(IllegalStateException.class);
+ this.initializerImpl.start();
}
@Test
public void testDeinitializeIsIdempotent() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn(null);
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld05");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- expect(this.servletContext.getClassLoader()).andReturn(this.getClass().getClassLoader());
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn(null);
+ given(servletContext.getServletContextName()).willReturn("helloWorld05");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
+ given(servletContext.getClassLoader()).willReturn(getClass().getClassLoader());
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
-
- verify(this.servletContext);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
this.initializerImpl.stop();
this.initializerImpl.stop();
this.initializerImpl.stop();
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
}
@Test
public void testInitializeUsingJndiSelectorFails() throws Exception {
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn("true");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn("true");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
- try {
- this.initializerImpl.start();
- fail("Expected an IllegalStateException.");
- } catch (final IllegalStateException ignore) {
- // ignore
- }
+ expectedException.expect(IllegalStateException.class);
+ this.initializerImpl.start();
}
@Test
public void testInitializeUsingJndiSelector() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn("helloWorld6");
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn("true");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn("helloWorld06");
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn("true");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNull("The context attribute should be null.", loggerContextCapture.getValue());
-
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNull("The context attribute should be null.", loggerContextCaptor.getValue());
assertNull("The context should still be null.", ContextAnchor.THREAD_CONTEXT.get());
@@ -403,16 +264,8 @@ public class Log4jWebInitializerImplTest {
assertNull("The context should be null again.", ContextAnchor.THREAD_CONTEXT.get());
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
-
this.initializerImpl.stop();
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
-
assertNull("The context should again still be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.setLoggerContext();
@@ -422,65 +275,37 @@ public class Log4jWebInitializerImplTest {
@Test
public void testWrapExecutionWithNoParameters() throws Exception {
- final Capture<Object> loggerContextCapture = EasyMock.newCapture();
-
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONTEXT_NAME)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.LOG4J_CONFIG_LOCATION)).andReturn(null);
- expect(this.servletContext.getInitParameter(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))
- .andReturn(null);
- expect(this.servletContext.getServletContextName()).andReturn("helloWorld01");
- expect(this.servletContext.getResourcePaths("/WEB-INF/")).andReturn(null);
- this.servletContext.setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), capture(loggerContextCapture));
- expectLastCall();
-
- replay(this.servletContext);
-
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONTEXT_NAME))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.LOG4J_CONFIG_LOCATION))).willReturn(null);
+ given(servletContext.getInitParameter(eq(Log4jWebSupport.IS_LOG4J_CONTEXT_SELECTOR_NAMED))).willReturn(null);
+ given(servletContext.getServletContextName()).willReturn("helloWorld07");
+ given(servletContext.getResourcePaths("/WEB-INF/")).willReturn(null);
assertNull("The context should be null.", ContextAnchor.THREAD_CONTEXT.get());
this.initializerImpl.start();
- assertNotNull("The context attribute should not be null.", loggerContextCapture.getValue());
- assertTrue("The context attribute is not correct.",
- loggerContextCapture.getValue() instanceof org.apache.logging.log4j.spi.LoggerContext);
- final org.apache.logging.log4j.spi.LoggerContext loggerContext =
- (org.apache.logging.log4j.spi.LoggerContext)loggerContextCapture.getValue();
-
- verify(this.servletContext);
- reset(this.servletContext);
+ then(servletContext).should().setAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE), loggerContextCaptor.capture());
+ assertNotNull("The context attribute should not be null.", loggerContextCaptor.getValue());
+ final org.apache.logging.log4j.spi.LoggerContext loggerContext = loggerContextCaptor.getValue();
assertNull("The context should still be null.", ContextAnchor.THREAD_CONTEXT.get());
- final Runnable runnable = createStrictMock(Runnable.class);
- runnable.run();
- expectLastCall().andAnswer(new IAnswer<Void>() {
+ final Runnable runnable = new Runnable() {
@Override
- public Void answer() {
+ public void run() {
final LoggerContext context = ContextAnchor.THREAD_CONTEXT.get();
assertNotNull("The context should not be null.", context);
assertSame("The context is not correct.", loggerContext, context);
- return null;
}
- });
-
- replay(this.servletContext, runnable);
+ };
this.initializerImpl.wrapExecution(runnable);
assertNull("The context should be null again.", ContextAnchor.THREAD_CONTEXT.get());
- verify(this.servletContext, runnable);
- reset(this.servletContext);
-
- this.servletContext.removeAttribute(Log4jWebSupport.CONTEXT_ATTRIBUTE);
- expectLastCall();
-
- replay(this.servletContext);
-
this.initializerImpl.stop();
- verify(this.servletContext);
- reset(this.servletContext);
- replay(this.servletContext);
+ then(servletContext).should().removeAttribute(eq(Log4jWebSupport.CONTEXT_ATTRIBUTE));
assertNull("The context should again still be null.", ContextAnchor.THREAD_CONTEXT.get());
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index be4d7e4..86051d7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -224,6 +224,7 @@
<!-- Allow Clirr severity to be overriden by the command-line option -DminSeverity=level -->
<minSeverity>info</minSeverity>
<jctoolsVersion>1.2.1</jctoolsVersion>
+ <mockitoVersion>2.2.7</mockitoVersion>
</properties>
<pluginRepositories>
<pluginRepository>
@@ -653,9 +654,9 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
- <version>3.4</version>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <version>${mockitoVersion}</version>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 4e0eb6e..56bf22f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -42,6 +42,9 @@
<action issue="LOG4J2-1647" dev="mattsicker" type="update">
Update Commons Lang from 3.4 to 4.5.
</action>
+ <action issue="LOG4J2-1646" dev="mattsicker" type="update">
+ Migrate to Mockito 2.x in unit tests.
+ </action>
</release>
<release version="2.7" date="2016-10-02" description="GA Release 2.7">
<action issue="LOG4J2-1618" dev="rpopma" type="fix" due-to="Raman Gupta">
[2/2] logging-log4j2 git commit: Migrate unit tests to Mockito 2.x
Posted by ma...@apache.org.
Migrate unit tests to Mockito 2.x
This commit completely migrates from EasyMock to Mockito 2.x. Unit tests
have been updated to use the BDD-style of Mockito's API
(given/when/then). Various test cleanups were also included during the
migration.
Related to LOG4J2-1646.
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/78c6a1fc
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/78c6a1fc
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/78c6a1fc
Branch: refs/heads/master
Commit: 78c6a1fcae718f5edd177256ab157f555b84f37a
Parents: f3e9ea1
Author: Matt Sicker <bo...@gmail.com>
Authored: Sun Oct 23 15:09:35 2016 -0500
Committer: Matt Sicker <bo...@gmail.com>
Committed: Sun Oct 23 15:12:03 2016 -0500
----------------------------------------------------------------------
log4j-core/pom.xml | 4 +-
.../core/appender/ConsoleAppenderTest.java | 27 +-
.../db/AbstractDatabaseAppenderTest.java | 145 +++----
.../db/AbstractDatabaseManagerTest.java | 356 +++++++--------
.../db/jdbc/AbstractJdbcAppenderTest.java | 20 +-
.../db/jdbc/DataSourceConnectionSourceTest.java | 17 +-
.../jdbc/FactoryMethodConnectionSourceTest.java | 53 +--
.../log4j/core/lookup/Log4jLookupTest.java | 33 +-
.../core/lookup/Log4jLookupWithSpacesTest.java | 35 +-
log4j-iostreams/pom.xml | 4 +-
.../io/AbstractLoggerOutputStreamTest.java | 15 +-
.../log4j/io/AbstractLoggerWriterTest.java | 15 +-
log4j-nosql/pom.xml | 5 +-
.../log4j/nosql/appender/NoSqlAppenderTest.java | 30 +-
.../appender/NoSqlDatabaseManagerTest.java | 434 ++++++-------------
log4j-web/pom.xml | 4 +-
.../Log4jServletContainerInitializerTest.java | 164 +++----
.../web/Log4jServletContextListenerTest.java | 58 +--
.../log4j/web/Log4jServletFilterTest.java | 114 ++---
.../log4j/web/Log4jWebInitializerImplTest.java | 367 ++++------------
pom.xml | 7 +-
src/changes/changes.xml | 3 +
22 files changed, 658 insertions(+), 1252 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-core/pom.xml b/log4j-core/pom.xml
index 2fbc78c..5cda105 100644
--- a/log4j-core/pom.xml
+++ b/log4j-core/pom.xml
@@ -203,8 +203,8 @@
</dependency>
<!-- Mocking framework for use with JUnit -->
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<!-- Embedded JDBC drivers for database appender tests -->
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
index 87aef83..c53eb43 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/ConsoleAppenderTest.java
@@ -27,22 +27,25 @@ import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.core.layout.PatternLayout;
import org.apache.logging.log4j.message.SimpleMessage;
import org.apache.logging.log4j.util.Strings;
-import org.easymock.EasyMockSupport;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.expectLastCall;
import static org.junit.Assert.*;
-
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.atLeastOnce;
/**
*
*/
+@RunWith(MockitoJUnitRunner.class)
public class ConsoleAppenderTest {
private static final String LOG4J_SKIP_JANSI = "log4j.skipJansi";
@@ -59,15 +62,12 @@ public class ConsoleAppenderTest {
ByteArrayOutputStream baos;
- EasyMockSupport mocks;
-
+ @Mock
PrintStream psMock;
@Before
public void before() {
System.setProperty(LOG4J_SKIP_JANSI, "true");
- mocks = new EasyMockSupport();
- psMock = mocks.createMock("psMock", PrintStream.class);
baos = new ByteArrayOutputStream();
}
@@ -90,12 +90,6 @@ public class ConsoleAppenderTest {
private void testConsoleStreamManagerDoesNotClose(final PrintStream ps, final Target targetName, final SystemSetter systemSetter) {
try {
- psMock.write((byte[]) anyObject(), anyInt(), anyInt());
- expectLastCall().anyTimes();
- psMock.flush();
- expectLastCall().anyTimes();
-
- mocks.replayAll();
systemSetter.systemSet(psMock);
final Layout<String> layout = PatternLayout.newBuilder().withAlwaysWriteExceptions(true).build();
final ConsoleAppender app = ConsoleAppender.newBuilder().withLayout(layout).setTarget(targetName)
@@ -116,7 +110,8 @@ public class ConsoleAppenderTest {
} finally {
systemSetter.systemSet(ps);
}
- mocks.verifyAll();
+ then(psMock).should(atLeastOnce()).write(any(byte[].class), anyInt(), anyInt());
+ then(psMock).should(atLeastOnce()).flush();
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
index 276930c..cf33cea 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseAppenderTest.java
@@ -16,138 +16,94 @@
*/
package org.apache.logging.log4j.core.appender.db;
+import java.util.concurrent.TimeUnit;
+
import org.apache.logging.log4j.core.Filter;
import org.apache.logging.log4j.core.LogEvent;
-import org.junit.After;
import org.junit.Test;
-
-import static org.easymock.EasyMock.*;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+@RunWith(MockitoJUnitRunner.class)
public class AbstractDatabaseAppenderTest {
private LocalAbstractDatabaseAppender appender;
+ @Mock
private LocalAbstractDatabaseManager manager;
public void setUp(final String name) {
- this.manager = createMockBuilder(LocalAbstractDatabaseManager.class)
- .withConstructor(String.class, int.class)
- .withArgs(name, 0)
- .addMockedMethod("close")
- .createStrictMock();
-
- this.appender = createMockBuilder(LocalAbstractDatabaseAppender.class)
- .withConstructor(String.class, Filter.class, boolean.class, LocalAbstractDatabaseManager.class)
- .withArgs(name, null, true, this.manager)
- .createStrictMock();
- }
-
- @After
- public void tearDown() {
- verify(this.manager, this.appender);
+ appender = new LocalAbstractDatabaseAppender(name, null, true, manager);
}
@Test
public void testNameAndGetLayout01() {
- this.setUp("testName01");
+ setUp("testName01");
- replay(this.manager, this.appender);
-
- assertEquals("The name is not correct.", "testName01", this.appender.getName());
- assertNull("The layout should always be null.", this.appender.getLayout());
+ assertEquals("The name is not correct.", "testName01", appender.getName());
+ assertNull("The layout should always be null.", appender.getLayout());
}
@Test
public void testNameAndGetLayout02() {
- this.setUp("anotherName02");
-
- replay(this.manager, this.appender);
+ setUp("anotherName02");
- assertEquals("The name is not correct.", "anotherName02", this.appender.getName());
- assertNull("The layout should always be null.", this.appender.getLayout());
+ assertEquals("The name is not correct.", "anotherName02", appender.getName());
+ assertNull("The layout should always be null.", appender.getLayout());
}
@Test
public void testStartAndStop() throws Exception {
- this.setUp("name");
-
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager, this.appender);
-
- this.appender.start();
+ setUp("name");
- verify(this.manager, this.appender);
- reset(this.manager, this.appender);
- this.manager.shutdownInternal();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager, this.appender);
+ appender.start();
+ then(manager).should().startupInternal();
- this.appender.stop();
+ appender.stop();
+ then(manager).should().stop(0L, TimeUnit.MILLISECONDS);
}
@Test
public void testReplaceManager() throws Exception {
- this.setUp("name");
+ setUp("name");
- replay(this.manager, this.appender);
+ final LocalAbstractDatabaseManager oldManager = appender.getManager();
+ assertSame("The manager should be the same.", manager, oldManager);
- final LocalAbstractDatabaseManager manager = this.appender.getManager();
+ final LocalAbstractDatabaseManager newManager = mock(LocalAbstractDatabaseManager.class);
+ appender.replaceManager(newManager);
+ then(manager).should().close();
+ then(newManager).should().startupInternal();
- assertSame("The manager should be the same.", this.manager, manager);
+ appender.stop();
+ then(newManager).should().stop(0L, TimeUnit.MILLISECONDS);
+ }
- verify(this.manager, this.appender);
- reset(this.manager, this.appender);
- this.manager.close();
- expectLastCall();
- final LocalAbstractDatabaseManager newManager = createMockBuilder(LocalAbstractDatabaseManager.class)
- .withConstructor(String.class, int.class).withArgs("name", 0).addMockedMethod("close")
- .createStrictMock();
- newManager.startupInternal();
- expectLastCall();
- replay(this.manager, this.appender, newManager);
+ @Test
+ public void testAppend() {
+ setUp("name");
+ given(manager.commitAndClose()).willReturn(true);
- this.appender.replaceManager(newManager);
+ final LogEvent event1 = mock(LogEvent.class);
+ final LogEvent event2 = mock(LogEvent.class);
- verify(this.manager, this.appender, newManager);
- reset(this.manager, this.appender, newManager);
- newManager.shutdownInternal();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager, this.appender, newManager);
+ appender.append(event1);
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event1));
+ then(manager).should().commitAndClose();
- this.appender.stop();
+ reset(manager);
- verify(newManager);
- }
-
- @Test
- public void testAppend() {
- this.setUp("name");
-
- final LogEvent event1 = createStrictMock(LogEvent.class);
- final LogEvent event2 = createStrictMock(LogEvent.class);
-
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event1));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager, this.appender);
-
- this.appender.append(event1);
-
- verify(this.manager, this.appender);
- reset(this.manager, this.appender);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event2));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager, this.appender);
-
- this.appender.append(event2);
+ appender.append(event2);
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event2));
+ then(manager).should().commitAndClose();
}
private static abstract class LocalAbstractDatabaseManager extends AbstractDatabaseManager {
@@ -156,8 +112,7 @@ public class AbstractDatabaseAppenderTest {
}
}
- private static abstract class LocalAbstractDatabaseAppender extends
- AbstractDatabaseAppender<LocalAbstractDatabaseManager> {
+ private static class LocalAbstractDatabaseAppender extends AbstractDatabaseAppender<LocalAbstractDatabaseManager> {
public LocalAbstractDatabaseAppender(final String name, final Filter filter, final boolean exceptionSuppressed,
final LocalAbstractDatabaseManager manager) {
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManagerTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManagerTest.java
index 3a8ae8f..04d7699 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManagerTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/AbstractDatabaseManagerTest.java
@@ -17,261 +17,201 @@
package org.apache.logging.log4j.core.appender.db;
import org.apache.logging.log4j.core.LogEvent;
-import org.junit.After;
import org.junit.Test;
-import static org.easymock.EasyMock.*;
-
import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.reset;
+import static org.mockito.Mockito.spy;
public class AbstractDatabaseManagerTest {
private AbstractDatabaseManager manager;
public void setUp(final String name, final int buffer) {
- this.manager = createMockBuilder(AbstractDatabaseManager.class)
- .withConstructor(String.class, int.class)
- .withArgs(name, buffer)
- .addMockedMethod("release")
- .createStrictMock();
- }
-
- @After
- public void tearDown() {
- verify(this.manager);
+ manager = spy(new StubDatabaseManager(name, buffer));
}
@Test
public void testStartupShutdown01() throws Exception {
- this.setUp("testName01", 0);
-
- replay(this.manager);
-
- assertEquals("The name is not correct.", "testName01", this.manager.getName());
- assertFalse("The manager should not have started.", this.manager.isRunning());
+ setUp("testName01", 0);
- verify(this.manager);
- reset(this.manager);
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
+ assertEquals("The name is not correct.", "testName01", manager.getName());
+ assertFalse("The manager should not have started.", manager.isRunning());
- this.manager.startup();
- assertTrue("The manager should be running now.", this.manager.isRunning());
+ manager.startup();
+ then(manager).should().startupInternal();
+ assertTrue("The manager should be running now.", manager.isRunning());
- verify(this.manager);
- reset(this.manager);
- this.manager.shutdownInternal();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.shutdown();
- assertFalse("The manager should not be running anymore.", this.manager.isRunning());
+ manager.shutdown();
+ then(manager).should().shutdownInternal();
+ assertFalse("The manager should not be running anymore.", manager.isRunning());
}
@Test
public void testStartupShutdown02() throws Exception {
- this.setUp("anotherName02", 0);
-
- replay(this.manager);
-
- assertEquals("The name is not correct.", "anotherName02", this.manager.getName());
- assertFalse("The manager should not have started.", this.manager.isRunning());
+ setUp("anotherName02", 0);
- verify(this.manager);
- reset(this.manager);
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
+ assertEquals("The name is not correct.", "anotherName02", manager.getName());
+ assertFalse("The manager should not have started.", manager.isRunning());
- this.manager.startup();
- assertTrue("The manager should be running now.", this.manager.isRunning());
+ manager.startup();
+ then(manager).should().startupInternal();
+ assertTrue("The manager should be running now.", manager.isRunning());
- verify(this.manager);
- reset(this.manager);
- this.manager.shutdownInternal();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.releaseSub(-1, null);
- assertFalse("The manager should not be running anymore.", this.manager.isRunning());
+ manager.releaseSub(-1, null);
+ then(manager).should().shutdownInternal();
+ assertFalse("The manager should not be running anymore.", manager.isRunning());
}
@Test
public void testToString01() {
- this.setUp("someName01", 0);
-
- replay(this.manager);
+ setUp("someName01", 0);
- assertEquals("The string is not correct.", "someName01", this.manager.toString());
+ assertEquals("The string is not correct.", "someName01", manager.toString());
}
@Test
public void testToString02() {
- this.setUp("bufferSize=12, anotherKey02=coolValue02", 12);
+ setUp("bufferSize=12, anotherKey02=coolValue02", 12);
- replay(this.manager);
-
- assertEquals("The string is not correct.", "bufferSize=12, anotherKey02=coolValue02", this.manager.toString());
+ assertEquals("The string is not correct.", "bufferSize=12, anotherKey02=coolValue02", manager.toString());
}
@Test
public void testBuffering01() throws Exception {
- this.setUp("name", 0);
-
- final LogEvent event1 = createStrictMock(LogEvent.class);
- final LogEvent event2 = createStrictMock(LogEvent.class);
- final LogEvent event3 = createStrictMock(LogEvent.class);
-
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
-
- this.manager.startup();
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event1));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.write(event1);
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event2));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.write(event2);
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event3));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.write(event3);
+ setUp("name", 0);
+
+ final LogEvent event1 = mock(LogEvent.class);
+ final LogEvent event2 = mock(LogEvent.class);
+ final LogEvent event3 = mock(LogEvent.class);
+
+ manager.startup();
+ then(manager).should().startupInternal();
+ reset(manager);
+
+ manager.write(event1);
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event1));
+ then(manager).should().commitAndClose();
+ reset(manager);
+
+ manager.write(event2);
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event2));
+ then(manager).should().commitAndClose();
+ reset(manager);
+
+ manager.write(event3);
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event3));
+ then(manager).should().commitAndClose();
+ then(manager).shouldHaveNoMoreInteractions();
}
@Test
public void testBuffering02() throws Exception {
- this.setUp("name", 4);
-
- final LogEvent event1 = createStrictMock(LogEvent.class);
- final LogEvent event2 = createStrictMock(LogEvent.class);
- final LogEvent event3 = createStrictMock(LogEvent.class);
- final LogEvent event4 = createStrictMock(LogEvent.class);
-
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
-
- this.manager.startup();
-
- this.manager.write(event1);
- this.manager.write(event2);
- this.manager.write(event3);
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event1));
- expectLastCall();
- this.manager.writeInternal(same(event2));
- expectLastCall();
- this.manager.writeInternal(same(event3));
- expectLastCall();
- this.manager.writeInternal(same(event4));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.write(event4);
+ setUp("name", 4);
+
+ final LogEvent event1 = mock(LogEvent.class);
+ final LogEvent event2 = mock(LogEvent.class);
+ final LogEvent event3 = mock(LogEvent.class);
+ final LogEvent event4 = mock(LogEvent.class);
+
+ manager.startup();
+ then(manager).should().startupInternal();
+
+ manager.write(event1);
+ manager.write(event2);
+ manager.write(event3);
+ manager.write(event4);
+
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event1));
+ then(manager).should().writeInternal(same(event2));
+ then(manager).should().writeInternal(same(event3));
+ then(manager).should().writeInternal(same(event4));
+ then(manager).should().commitAndClose();
+ then(manager).shouldHaveNoMoreInteractions();
}
@Test
public void testBuffering03() throws Exception {
- this.setUp("name", 10);
-
- final LogEvent event1 = createStrictMock(LogEvent.class);
- final LogEvent event2 = createStrictMock(LogEvent.class);
- final LogEvent event3 = createStrictMock(LogEvent.class);
-
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
-
- this.manager.startup();
-
- this.manager.write(event1);
- this.manager.write(event2);
- this.manager.write(event3);
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event1));
- expectLastCall();
- this.manager.writeInternal(same(event2));
- expectLastCall();
- this.manager.writeInternal(same(event3));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.flush();
+ setUp("name", 10);
+
+ final LogEvent event1 = mock(LogEvent.class);
+ final LogEvent event2 = mock(LogEvent.class);
+ final LogEvent event3 = mock(LogEvent.class);
+
+ manager.startup();
+ then(manager).should().startupInternal();
+
+ manager.write(event1);
+ manager.write(event2);
+ manager.write(event3);
+ manager.flush();
+
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event1));
+ then(manager).should().writeInternal(same(event2));
+ then(manager).should().writeInternal(same(event3));
+ then(manager).should().commitAndClose();
+ then(manager).shouldHaveNoMoreInteractions();
}
@Test
public void testBuffering04() throws Exception {
- this.setUp("name", 10);
-
- final LogEvent event1 = createStrictMock(LogEvent.class);
- final LogEvent event2 = createStrictMock(LogEvent.class);
- final LogEvent event3 = createStrictMock(LogEvent.class);
-
- this.manager.startupInternal();
- expectLastCall();
- replay(this.manager);
-
- this.manager.startup();
-
- this.manager.write(event1);
- this.manager.write(event2);
- this.manager.write(event3);
-
- verify(this.manager);
- reset(this.manager);
- this.manager.connectAndStart();
- expectLastCall();
- this.manager.writeInternal(same(event1));
- expectLastCall();
- this.manager.writeInternal(same(event2));
- expectLastCall();
- this.manager.writeInternal(same(event3));
- expectLastCall();
- this.manager.commitAndClose();
- expectLastCall().andReturn(Boolean.TRUE);
- this.manager.shutdownInternal();
- expectLastCall().andReturn(Boolean.TRUE);
- replay(this.manager);
-
- this.manager.shutdown();
+ setUp("name", 10);
+
+ final LogEvent event1 = mock(LogEvent.class);
+ final LogEvent event2 = mock(LogEvent.class);
+ final LogEvent event3 = mock(LogEvent.class);
+
+ manager.startup();
+ then(manager).should().startupInternal();
+
+ manager.write(event1);
+ manager.write(event2);
+ manager.write(event3);
+ manager.shutdown();
+
+ then(manager).should().connectAndStart();
+ then(manager).should().writeInternal(same(event1));
+ then(manager).should().writeInternal(same(event2));
+ then(manager).should().writeInternal(same(event3));
+ then(manager).should().commitAndClose();
+ then(manager).should().shutdownInternal();
+ then(manager).shouldHaveNoMoreInteractions();
+ }
+
+ // this stub is provided because mocking constructors is hard
+ private static class StubDatabaseManager extends AbstractDatabaseManager {
+
+ protected StubDatabaseManager(final String name, final int bufferSize) {
+ super(name, bufferSize);
+ }
+
+ @Override
+ protected void startupInternal() throws Exception {
+ }
+
+ @Override
+ protected boolean shutdownInternal() throws Exception {
+ return true;
+ }
+
+ @Override
+ protected void connectAndStart() {
+ }
+
+ @Override
+ protected void writeInternal(final LogEvent event) {
+ }
+
+ @Override
+ protected boolean commitAndClose() {
+ return true;
+ }
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
index 881eab9..99c229d 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/AbstractJdbcAppenderTest.java
@@ -22,7 +22,6 @@ import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
-
import javax.naming.InitialContext;
import javax.sql.DataSource;
@@ -34,15 +33,16 @@ import org.apache.logging.log4j.core.config.ConfigurationFactory;
import org.apache.logging.log4j.core.config.DefaultConfiguration;
import org.apache.logging.log4j.status.StatusLogger;
import org.apache.logging.log4j.util.Strings;
-import org.easymock.IAnswer;
import org.h2.util.IOUtils;
import org.junit.After;
import org.junit.Test;
import org.mockejb.jndi.MockContextFactory;
-
-import static org.easymock.EasyMock.*;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
public abstract class AbstractJdbcAppenderTest {
private final String databaseType;
@@ -93,15 +93,13 @@ public abstract class AbstractJdbcAppenderTest {
@Test
public void testDataSourceConfig() throws Exception {
- final DataSource dataSource = createStrictMock(DataSource.class);
-
- expect(dataSource.getConnection()).andAnswer(new IAnswer<Connection>() {
+ final DataSource dataSource = mock(DataSource.class);
+ given(dataSource.getConnection()).willAnswer(new Answer<Connection>() {
@Override
- public Connection answer() throws Throwable {
+ public Connection answer(final InvocationOnMock invocation) throws Throwable {
return newConnection();
}
- }).atLeastOnce();
- replay(dataSource);
+ });
MockContextFactory.setAsInitial();
@@ -147,8 +145,6 @@ public abstract class AbstractJdbcAppenderTest {
IOUtils.readStringAndClose(resultSet.getNClob("exception").getCharacterStream(), -1));
assertFalse("There should not be two rows.", resultSet.next());
-
- verify(dataSource);
} finally {
MockContextFactory.revertSetAsInitial();
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/DataSourceConnectionSourceTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/DataSourceConnectionSourceTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/DataSourceConnectionSourceTest.java
index 7da9cb5..65ff060 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/DataSourceConnectionSourceTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/DataSourceConnectionSourceTest.java
@@ -20,7 +20,6 @@ import java.sql.Connection;
import java.sql.SQLException;
import java.util.Arrays;
import java.util.Collection;
-
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
@@ -37,9 +36,9 @@ import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.mockejb.jndi.MockContextFactory;
-import static org.easymock.EasyMock.*;
-
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
@RunWith(Parameterized.class)
public class DataSourceConnectionSourceTest {
@@ -112,13 +111,11 @@ public class DataSourceConnectionSourceTest {
@Test
public void testDataSource() throws NamingException, SQLException {
- final DataSource dataSource = createStrictMock(DataSource.class);
- final Connection connection1 = createStrictMock(Connection.class);
- final Connection connection2 = createStrictMock(Connection.class);
+ final DataSource dataSource = mock(DataSource.class);
+ final Connection connection1 = mock(Connection.class);
+ final Connection connection2 = mock(Connection.class);
- expect(dataSource.getConnection()).andReturn(connection1);
- expect(dataSource.getConnection()).andReturn(connection2);
- replay(dataSource, connection1, connection2);
+ given(dataSource.getConnection()).willReturn(connection1, connection2);
this.context.bind(this.jndiURL, dataSource);
@@ -134,8 +131,6 @@ public class DataSourceConnectionSourceTest {
source = DataSourceConnectionSource.createConnectionSource(jndiURL.substring(0, jndiURL.length() - 1));
assertNull("The connection source should be null now.", source);
-
- verify(dataSource, connection1, connection2);
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/FactoryMethodConnectionSourceTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/FactoryMethodConnectionSourceTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/FactoryMethodConnectionSourceTest.java
index cb02543..e8a99b7 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/FactoryMethodConnectionSourceTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/db/jdbc/FactoryMethodConnectionSourceTest.java
@@ -18,46 +18,23 @@ package org.apache.logging.log4j.core.appender.db.jdbc;
import java.sql.Connection;
import java.sql.SQLException;
-
import javax.sql.DataSource;
-import org.apache.logging.log4j.Level;
-import org.apache.logging.log4j.core.LoggerContext;
-import org.apache.logging.log4j.core.config.ConfigurationFactory;
-import org.apache.logging.log4j.status.StatusLogger;
+import org.apache.logging.log4j.junit.LoggerContextRule;
import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.BeforeClass;
+import org.junit.ClassRule;
import org.junit.Test;
-import static org.easymock.EasyMock.*;
-
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.Mockito.mock;
public class FactoryMethodConnectionSourceTest {
private static ThreadLocal<Object> holder = new ThreadLocal<>();
private static final String CONFIG = "log4j-fatalOnly.xml";
- @BeforeClass
- public static void beforeClass() {
- System.setProperty(ConfigurationFactory.CONFIGURATION_FILE_PROPERTY, CONFIG);
- final LoggerContext ctx = LoggerContext.getContext();
- ctx.reconfigure();
- final StatusLogger logger = StatusLogger.getLogger();
- logger.setLevel(Level.FATAL);
- }
-
- @AfterClass
- public static void tearDownClass() {
- holder.remove();
- holder = null;
- }
-
- @Before
- public void setUp() {
-
- }
+ @ClassRule
+ public static LoggerContextRule ctx = new LoggerContextRule(CONFIG);
@After
public void tearDown() {
@@ -107,13 +84,11 @@ public class FactoryMethodConnectionSourceTest {
@Test
public void testDataSourceReturnType() throws SQLException {
- final DataSource dataSource = createStrictMock(DataSource.class);
- final Connection connection1 = createStrictMock(Connection.class);
- final Connection connection2 = createStrictMock(Connection.class);
+ final DataSource dataSource = mock(DataSource.class);
+ final Connection connection1 = mock(Connection.class);
+ final Connection connection2 = mock(Connection.class);
- expect(dataSource.getConnection()).andReturn(connection1);
- expect(dataSource.getConnection()).andReturn(connection2);
- replay(dataSource, connection1, connection2);
+ given(dataSource.getConnection()).willReturn(connection1, connection2);
holder.set(dataSource);
@@ -126,15 +101,11 @@ public class FactoryMethodConnectionSourceTest {
+ "] " + DataSourceFactory.class.getName() + ".factoryMethod02() }", source.toString());
assertSame("The connection is not correct (1).", connection1, source.getConnection());
assertSame("The connection is not correct (2).", connection2, source.getConnection());
-
- verify(connection1, connection2);
}
@Test
public void testConnectionReturnType() throws SQLException {
- final Connection connection = createStrictMock(Connection.class);
-
- replay(connection);
+ final Connection connection = mock(Connection.class);
holder.set(connection);
@@ -147,8 +118,6 @@ public class FactoryMethodConnectionSourceTest {
+ ConnectionFactory.class.getName() + ".anotherMethod03() }", source.toString());
assertSame("The connection is not correct (1).", connection, source.getConnection());
assertSame("The connection is not correct (2).", connection, source.getConnection());
-
- verify(connection);
}
@SuppressWarnings("unused")
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupTest.java
index 3059a9a..0db5db0 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupTest.java
@@ -23,48 +23,43 @@ import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationAware;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.impl.ContextAnchor;
-import org.easymock.EasyMock;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
import static org.apache.logging.log4j.core.lookup.Log4jLookup.KEY_CONFIG_LOCATION;
import static org.apache.logging.log4j.core.lookup.Log4jLookup.KEY_CONFIG_PARENT_LOCATION;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
/**
*
*/
+@RunWith(MockitoJUnitRunner.class)
public class Log4jLookupTest {
private final static File EXPECT = new File(System.getProperty("user.home"), "/a/b/c/d/e/log4j2.xml");
- private LoggerContext mockCtx = null;
- private Configuration config = null;
- private ConfigurationSource configSrc = null;
+
+ @Mock
+ private LoggerContext mockCtx;
+ @Mock
+ private Configuration config;
+ @Mock
+ private ConfigurationSource configSrc;
@Before
public void setup() throws URISyntaxException {
- this.mockCtx = EasyMock.createMock(LoggerContext.class);
ContextAnchor.THREAD_CONTEXT.set(mockCtx);
-
- this.config = EasyMock.createMock(Configuration.class);
-
- this.configSrc = EasyMock.createMock(ConfigurationSource.class);
- expect(config.getConfigurationSource()).andReturn(configSrc);
- expect(configSrc.getFile()).andReturn(EXPECT);
-
- replay(mockCtx, config, configSrc);
+ given(config.getConfigurationSource()).willReturn(configSrc);
+ given(configSrc.getFile()).willReturn(EXPECT);
}
@After
public void cleanup() {
- verify(mockCtx, config, configSrc);
-
ContextAnchor.THREAD_CONTEXT.set(null);
- this.mockCtx = null;
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupWithSpacesTest.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupWithSpacesTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupWithSpacesTest.java
index 7b88ad4..e5ecb49 100644
--- a/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupWithSpacesTest.java
+++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/lookup/Log4jLookupWithSpacesTest.java
@@ -24,47 +24,42 @@ import org.apache.logging.log4j.core.config.Configuration;
import org.apache.logging.log4j.core.config.ConfigurationAware;
import org.apache.logging.log4j.core.config.ConfigurationSource;
import org.apache.logging.log4j.core.impl.ContextAnchor;
-import org.easymock.EasyMock;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
-import static org.apache.logging.log4j.core.lookup.Log4jLookup.*;
-
-import static org.easymock.EasyMock.*;
-
+import static org.apache.logging.log4j.core.lookup.Log4jLookup.KEY_CONFIG_LOCATION;
+import static org.apache.logging.log4j.core.lookup.Log4jLookup.KEY_CONFIG_PARENT_LOCATION;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.given;
/**
*
*/
+@RunWith(MockitoJUnitRunner.class)
public class Log4jLookupWithSpacesTest {
private final static File EXPECT = new File(System.getProperty("user.home"), "/a a/b b/c c/d d/e e/log4j2 file.xml");
- private LoggerContext mockCtx = null;
- private Configuration config = null;
- private ConfigurationSource configSrc = null;
+ @Mock
+ private LoggerContext mockCtx;
+ @Mock
+ private Configuration config;
+ @Mock
+ private ConfigurationSource configSrc;
@Before
public void setup() throws URISyntaxException, MalformedURLException {
- this.mockCtx = EasyMock.createMock(LoggerContext.class);
ContextAnchor.THREAD_CONTEXT.set(mockCtx);
-
- this.config = EasyMock.createMock(Configuration.class);
-
- this.configSrc = EasyMock.createMock(ConfigurationSource.class);
- expect(config.getConfigurationSource()).andReturn(configSrc);
- expect(configSrc.getFile()).andReturn(EXPECT);
-
- replay(mockCtx, config, configSrc);
+ given(config.getConfigurationSource()).willReturn(configSrc);
+ given(configSrc.getFile()).willReturn(EXPECT);
}
@After
public void cleanup() {
- verify(mockCtx, config, configSrc);
-
ContextAnchor.THREAD_CONTEXT.set(null);
- this.mockCtx = null;
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-iostreams/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-iostreams/pom.xml b/log4j-iostreams/pom.xml
index c818aae..1ca56b4 100644
--- a/log4j-iostreams/pom.xml
+++ b/log4j-iostreams/pom.xml
@@ -63,8 +63,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerOutputStreamTest.java
----------------------------------------------------------------------
diff --git a/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerOutputStreamTest.java b/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerOutputStreamTest.java
index 2f4f573..188b422 100644
--- a/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerOutputStreamTest.java
+++ b/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerOutputStreamTest.java
@@ -20,13 +20,12 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
-import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.mock;
public abstract class AbstractLoggerOutputStreamTest extends AbstractStreamTest {
@@ -63,10 +62,7 @@ public abstract class AbstractLoggerOutputStreamTest extends AbstractStreamTest
@Test
public void testFlush() throws IOException {
- final OutputStream os = EasyMock.createMock("out", OutputStream.class);
- os.flush(); // expect the flush to come through to the mocked OutputStream
- os.close();
- replay(os);
+ final OutputStream os = mock(OutputStream.class);
try (final OutputStream filteredOut =
IoBuilder.forLogger(getExtendedLogger())
@@ -75,7 +71,10 @@ public abstract class AbstractLoggerOutputStreamTest extends AbstractStreamTest
.buildOutputStream()) {
filteredOut.flush();
}
- verify(os);
+
+ then(os).should().flush();
+ then(os).should().close();
+ then(os).shouldHaveNoMoreInteractions();
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerWriterTest.java
----------------------------------------------------------------------
diff --git a/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerWriterTest.java b/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerWriterTest.java
index c40cdf6..7560546 100644
--- a/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerWriterTest.java
+++ b/log4j-iostreams/src/test/java/org/apache/logging/log4j/io/AbstractLoggerWriterTest.java
@@ -21,13 +21,12 @@ import java.io.OutputStream;
import java.io.StringWriter;
import java.io.Writer;
-import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
import static org.junit.Assert.*;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.mock;
public abstract class AbstractLoggerWriterTest extends AbstractStreamTest {
protected StringWriter wrapped;
@@ -65,10 +64,7 @@ public abstract class AbstractLoggerWriterTest extends AbstractStreamTest {
@Test
public void testFlush() throws IOException {
- final OutputStream out = EasyMock.createMock(OutputStream.class);
- out.flush(); // expect the flush to come through to the mocked OutputStream
- out.close();
- replay(out);
+ final OutputStream out = mock(OutputStream.class);
try (final OutputStream filteredOut =
IoBuilder.forLogger(getExtendedLogger())
@@ -77,7 +73,10 @@ public abstract class AbstractLoggerWriterTest extends AbstractStreamTest {
.buildOutputStream()) {
filteredOut.flush();
}
- verify(out);
+
+ then(out).should().flush();
+ then(out).should().close();
+ then(out).shouldHaveNoMoreInteractions();
}
@Test
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-nosql/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-nosql/pom.xml b/log4j-nosql/pom.xml
index ccf44e9..0ec75f5 100644
--- a/log4j-nosql/pom.xml
+++ b/log4j-nosql/pom.xml
@@ -54,8 +54,9 @@
<artifactId>junit</artifactId>
</dependency>
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlAppenderTest.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlAppenderTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlAppenderTest.java
index c48cf0a..236218c 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlAppenderTest.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlAppenderTest.java
@@ -16,17 +16,19 @@
*/
package org.apache.logging.log4j.nosql.appender;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.runners.MockitoJUnitRunner;
+
+import static org.junit.Assert.*;
+@RunWith(MockitoJUnitRunner.class)
public class NoSqlAppenderTest {
+ @Mock
+ private NoSqlProvider<?> provider;
+
@Test
public void testNoProvider() {
final NoSqlAppender appender = NoSqlAppender.createAppender("myName01", null, null, null, null);
@@ -36,11 +38,6 @@ public class NoSqlAppenderTest {
@Test
public void testProvider() {
- @SuppressWarnings("unchecked")
- final NoSqlProvider<?> provider = createStrictMock(NoSqlProvider.class);
-
- replay(provider);
-
final NoSqlAppender appender = NoSqlAppender.createAppender("myName01", null, null, null, provider);
assertNotNull("The appender should not be null.", appender);
@@ -49,17 +46,10 @@ public class NoSqlAppenderTest {
appender.toString());
appender.stop();
-
- verify(provider);
}
@Test
public void testProviderBuffer() {
- @SuppressWarnings("unchecked")
- final NoSqlProvider<?> provider = createStrictMock(NoSqlProvider.class);
-
- replay(provider);
-
final NoSqlAppender appender = NoSqlAppender.createAppender("anotherName02", null, null, "25", provider);
assertNotNull("The appender should not be null.", appender);
@@ -68,7 +58,5 @@ public class NoSqlAppenderTest {
+ " } }", appender.toString());
appender.stop();
-
- verify(provider);
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
----------------------------------------------------------------------
diff --git a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
index 2f597b5..af55e2c 100644
--- a/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
+++ b/log4j-nosql/src/test/java/org/apache/logging/log4j/nosql/appender/NoSqlDatabaseManagerTest.java
@@ -16,23 +16,9 @@
*/
package org.apache.logging.log4j.nosql.appender;
-import static org.easymock.EasyMock.anyInt;
-import static org.easymock.EasyMock.capture;
-import static org.easymock.EasyMock.createStrictMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.expectLastCall;
-import static org.easymock.EasyMock.getCurrentArguments;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.reset;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
import java.io.IOException;
import java.sql.SQLException;
+import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
@@ -43,173 +29,132 @@ import org.apache.logging.log4j.MarkerManager;
import org.apache.logging.log4j.ThreadContext;
import org.apache.logging.log4j.core.LogEvent;
import org.apache.logging.log4j.core.appender.AppenderLoggingException;
+import org.apache.logging.log4j.core.impl.Log4jLogEvent;
import org.apache.logging.log4j.junit.ThreadContextStackRule;
import org.apache.logging.log4j.message.Message;
-import org.easymock.Capture;
-import org.easymock.EasyMock;
-import org.easymock.IAnswer;
-import org.junit.After;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
-
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
+import org.mockito.Mock;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.mockito.stubbing.Answer;
+
+import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.BDDMockito.given;
+import static org.mockito.BDDMockito.then;
+import static org.mockito.Mockito.mock;
+
+@RunWith(MockitoJUnitRunner.class)
public class NoSqlDatabaseManagerTest {
+ @Mock
private NoSqlConnection<Map<String, Object>, DefaultNoSqlObject> connection;
+ @Mock
private NoSqlProvider<NoSqlConnection<Map<String, Object>, DefaultNoSqlObject>> provider;
+ @Mock
+ private Message message;
+ @Captor
+ private ArgumentCaptor<NoSqlObject<Map<String, Object>>> captor;
@Rule
- public final ThreadContextStackRule threadContextRule = new ThreadContextStackRule();
+ public final ThreadContextStackRule threadContextRule = new ThreadContextStackRule();
+ @Rule
+ public final ExpectedException expectedException = ExpectedException.none();
@Before
public void setUp() {
- this.provider = createStrictMock(NoSqlProvider.class);
- this.connection = createStrictMock(NoSqlConnection.class);
- }
-
- @After
- public void tearDown() {
- verify(this.provider, this.connection);
+ given(provider.getConnection()).willReturn(connection);
+ given(connection.createObject()).willAnswer(new Answer<DefaultNoSqlObject>() {
+ @Override
+ public DefaultNoSqlObject answer(final InvocationOnMock invocation) throws Throwable {
+ return new DefaultNoSqlObject();
+ }
+ });
+ given(connection.createList(anyInt())).willAnswer(new Answer<DefaultNoSqlObject[]>() {
+ @Override
+ public DefaultNoSqlObject[] answer(final InvocationOnMock invocation) throws Throwable {
+ return new DefaultNoSqlObject[invocation.<Integer>getArgument(0)];
+ }
+ });
}
@Test
- public void testConnection() {
- replay(this.provider, this.connection);
-
- try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
- this.provider)) {
-
- assertNotNull("The manager should not be null.", manager);
+ public void testConnection() {
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
- expect(this.provider.getConnection()).andReturn(this.connection);
- replay(this.provider, this.connection);
+ assertNotNull("The manager should not be null.", manager);
- manager.connectAndStart();
- manager.commitAndClose();
- }
- }
+ manager.connectAndStart();
+ then(provider).should().getConnection();
+ manager.commitAndClose();
+ }
+ }
@Test
- public void testWriteInternalNotConnected01() {
- replay(this.provider, this.connection);
-
- try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
- this.provider)) {
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
-
- final LogEvent event = createStrictMock(LogEvent.class);
- replay(this.provider, this.connection, event);
-
- try {
- manager.writeInternal(event);
- fail("Expected AppenderLoggingException.");
- } catch (final AppenderLoggingException ignore) {
- /* */
- }
-
- verify(event);
- }
- }
+ public void testWriteInternalNotConnected01() {
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
+ expectedException.expect(AppenderLoggingException.class);
+ manager.writeInternal(mock(LogEvent.class));
+ }
+ }
@Test
public void testWriteInternalNotConnected02() {
- final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0, this.provider);
+ given(connection.isClosed()).willReturn(true);
- try {
- replay(this.provider, this.connection);
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
manager.startup();
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
- expect(this.provider.getConnection()).andReturn(this.connection);
- replay(this.provider, this.connection);
-
manager.connectAndStart();
+ then(provider).should().getConnection();
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
-
- final LogEvent event = createStrictMock(LogEvent.class);
- expect(this.connection.isClosed()).andReturn(true);
- replay(this.provider, this.connection, event);
-
- try {
- manager.writeInternal(event);
- fail("Expected AppenderLoggingException.");
- } catch (final AppenderLoggingException ignore) {
- /* */
- }
- } finally {
- try {
- manager.close();
- } catch (final Throwable ignore) {
- /* */
- }
+ expectedException.expect(AppenderLoggingException.class);
+ manager.writeInternal(mock(LogEvent.class));
}
}
@Test
public void testWriteInternal01() {
- final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0, this.provider);
+ given(connection.isClosed()).willReturn(false);
+ given(message.getFormattedMessage()).willReturn("My formatted message 01.");
- try {
- replay(this.provider, this.connection);
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
manager.startup();
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
- expect(this.provider.getConnection()).andReturn(this.connection);
- replay(this.provider, this.connection);
-
manager.connectAndStart();
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
-
- final Capture<NoSqlObject<Map<String, Object>>> capture = EasyMock.newCapture();
-
- final LogEvent event = createStrictMock(LogEvent.class);
- final Message message = createStrictMock(Message.class);
-
- expect(this.connection.isClosed()).andReturn(false);
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(event.getLevel()).andReturn(Level.WARN);
- expect(event.getLoggerName()).andReturn("com.foo.NoSQLDbTest.testWriteInternal01");
- expect(event.getMessage()).andReturn(message).times(2);
- expect(message.getFormattedMessage()).andReturn("My formatted message 01.");
- expect(event.getSource()).andReturn(new StackTraceElement("com.foo.Bar", "testMethod01", "Bar.java", 15));
- expect(event.getMarker()).andReturn(null);
- expect(event.getThreadId()).andReturn(1L);
- expect(event.getThreadName()).andReturn("MyThread-A");
- expect(event.getThreadPriority()).andReturn(1);
- expect(event.getTimeMillis()).andReturn(1234567890123L).times(2);
- expect(event.getThrown()).andReturn(null);
- expect(event.getContextMap()).andReturn(null);
- expect(event.getContextStack()).andReturn(null);
- this.connection.insertObject(capture(capture));
- expectLastCall();
- replay(this.provider, this.connection, event, message);
+ then(provider).should().getConnection();
+
+ final LogEvent event = Log4jLogEvent.newBuilder()
+ .setLevel(Level.WARN)
+ .setLoggerName("com.foo.NoSQLDbTest.testWriteInternal01")
+ .setMessage(message)
+ .setSource(new StackTraceElement("com.foo.Bar", "testMethod01", "Bar.java", 15))
+ .setThreadId(1L)
+ .setThreadName("MyThread-A")
+ .setThreadPriority(1)
+ .setTimeMillis(1234567890123L)
+ .build();
manager.writeInternal(event);
+ then(connection).should().insertObject(captor.capture());
- final NoSqlObject<Map<String, Object>> inserted = capture.getValue();
+ final NoSqlObject<Map<String, Object>> inserted = captor.getValue();
assertNotNull("The inserted value should not be null.", inserted);
final Map<String, Object> object = inserted.unwrap();
assertNotNull("The unwrapped object should not be null.", object);
assertEquals("The level is not correct.", Level.WARN, object.get("level"));
assertEquals("The logger is not correct.", "com.foo.NoSQLDbTest.testWriteInternal01",
- object.get("loggerName"));
+ object.get("loggerName"));
assertEquals("The message is not correct.", "My formatted message 01.", object.get("message"));
assertEquals("The thread is not correct.", "MyThread-A", object.get("threadName"));
assertEquals("The millis is not correct.", 1234567890123L, object.get("millis"));
@@ -227,99 +172,61 @@ public class NoSqlDatabaseManagerTest {
assertNull("The thrown should be null.", object.get("thrown"));
- assertNull("The context map should be null.", object.get("contextMap"));
+ assertTrue("The context map should be empty.", ((Map) object.get("contextMap")).isEmpty());
- assertNull("The context stack should be null.", object.get("contextStack"));
+ assertTrue("The context stack should be null.", ((Collection) object.get("contextStack")).isEmpty());
- verify(this.provider, this.connection, event, message);
- } finally {
- try {
- manager.close();
- } catch (final Throwable ignore) {
- /* */
- }
}
}
@Test
public void testWriteInternal02() {
- final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0, this.provider);
-
- try {
- replay(this.provider, this.connection);
+ given(connection.isClosed()).willReturn(false);
+ given(message.getFormattedMessage()).willReturn("Another cool message 02.");
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
manager.startup();
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
- expect(this.provider.getConnection()).andReturn(this.connection);
- replay(this.provider, this.connection);
-
manager.connectAndStart();
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
-
- final Capture<NoSqlObject<Map<String, Object>>> capture = EasyMock.newCapture();
+ then(provider).should().getConnection();
final RuntimeException exception = new RuntimeException("This is something cool!");
final Map<String, String> context = new HashMap<>();
context.put("hello", "world");
context.put("user", "pass");
- final LogEvent event = createStrictMock(LogEvent.class);
- final Message message = createStrictMock(Message.class);
ThreadContext.push("message1");
ThreadContext.push("stack2");
final ThreadContext.ContextStack stack = ThreadContext.getImmutableStack();
ThreadContext.clearStack();
- expect(this.connection.isClosed()).andReturn(false);
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(this.connection.createList(anyInt())).andAnswer(new IAnswer<DefaultNoSqlObject[]>() {
- @Override
- public DefaultNoSqlObject[] answer() throws Throwable {
- return new DefaultNoSqlObject[(Integer) getCurrentArguments()[0]];
- }
- });
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(event.getLevel()).andReturn(Level.DEBUG);
- expect(event.getLoggerName()).andReturn("com.foo.NoSQLDbTest.testWriteInternal02");
- expect(event.getMessage()).andReturn(message).times(2);
- expect(message.getFormattedMessage()).andReturn("Another cool message 02.");
- expect(event.getSource()).andReturn(new StackTraceElement("com.bar.Foo", "anotherMethod03", "Foo.java", 9));
- expect(event.getMarker()).andReturn(MarkerManager.getMarker("LoneMarker"));
- expect(event.getThreadId()).andReturn(1L);
- expect(event.getThreadName()).andReturn("AnotherThread-B");
- expect(event.getThreadPriority()).andReturn(1);
- expect(event.getTimeMillis()).andReturn(987654321564L).times(2);
- expect(event.getThrown()).andReturn(exception);
- expect(event.getContextMap()).andReturn(context);
- expect(event.getContextStack()).andReturn(stack);
- this.connection.insertObject(capture(capture));
- expectLastCall();
- replay(this.provider, this.connection, event, message);
+ final LogEvent event = Log4jLogEvent.newBuilder()
+ .setLevel(Level.DEBUG)
+ .setLoggerName("com.foo.NoSQLDbTest.testWriteInternal02")
+ .setMessage(message)
+ .setSource(new StackTraceElement("com.bar.Foo", "anotherMethod03", "Foo.java", 9))
+ .setMarker(MarkerManager.getMarker("LoneMarker"))
+ .setThreadId(1L)
+ .setThreadName("AnotherThread-B")
+ .setThreadPriority(1)
+ .setTimeMillis(987654321564L)
+ .setThrown(exception)
+ .setContextMap(context)
+ .setContextStack(stack)
+ .build();
manager.writeInternal(event);
+ then(connection).should().insertObject(captor.capture());
- final NoSqlObject<Map<String, Object>> inserted = capture.getValue();
+ final NoSqlObject<Map<String, Object>> inserted = captor.getValue();
assertNotNull("The inserted value should not be null.", inserted);
final Map<String, Object> object = inserted.unwrap();
assertNotNull("The unwrapped object should not be null.", object);
assertEquals("The level is not correct.", Level.DEBUG, object.get("level"));
assertEquals("The logger is not correct.", "com.foo.NoSQLDbTest.testWriteInternal02",
- object.get("loggerName"));
+ object.get("loggerName"));
assertEquals("The message is not correct.", "Another cool message 02.", object.get("message"));
assertEquals("The thread is not correct.", "AnotherThread-B", object.get("threadName"));
assertEquals("The millis is not correct.", 987654321564L, object.get("millis"));
@@ -348,17 +255,17 @@ public class NoSqlDatabaseManagerTest {
@SuppressWarnings("unchecked")
final List<Map<String, Object>> stackTrace = (List<Map<String, Object>>) thrown.get("stackTrace");
assertEquals("The thrown stack trace length is not correct.", exception.getStackTrace().length,
- stackTrace.size());
+ stackTrace.size());
for (int i = 0; i < exception.getStackTrace().length; i++) {
final StackTraceElement e1 = exception.getStackTrace()[i];
final Map<String, Object> e2 = stackTrace.get(i);
assertEquals("Element class name [" + i + "] is not correct.", e1.getClassName(), e2.get("className"));
assertEquals("Element method name [" + i + "] is not correct.", e1.getMethodName(),
- e2.get("methodName"));
+ e2.get("methodName"));
assertEquals("Element file name [" + i + "] is not correct.", e1.getFileName(), e2.get("fileName"));
assertEquals("Element line number [" + i + "] is not correct.", e1.getLineNumber(),
- e2.get("lineNumber"));
+ e2.get("lineNumber"));
}
assertNull("The thrown should have no cause.", thrown.get("cause"));
@@ -367,37 +274,20 @@ public class NoSqlDatabaseManagerTest {
assertTrue("The context stack should be list.", object.get("contextStack") instanceof List);
assertEquals("The context stack is not correct.", stack.asList(), object.get("contextStack"));
-
- verify(this.provider, this.connection, event, message);
- } finally {
- try {
- manager.close();
- } catch (final Throwable ignore) {
- /* */
- }
}
}
@Test
public void testWriteInternal03() {
- final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0, this.provider);
-
- try {
- replay(this.provider, this.connection);
+ given(connection.isClosed()).willReturn(false);
+ given(message.getFormattedMessage()).willReturn("Another cool message 02.");
+ try (final NoSqlDatabaseManager<?> manager = NoSqlDatabaseManager.getNoSqlDatabaseManager("name", 0,
+ provider)) {
manager.startup();
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
- expect(this.provider.getConnection()).andReturn(this.connection);
- replay(this.provider, this.connection);
-
manager.connectAndStart();
-
- verify(this.provider, this.connection);
- reset(this.provider, this.connection);
-
- final Capture<NoSqlObject<Map<String, Object>>> capture = EasyMock.newCapture();
+ then(provider).should().getConnection();
final IOException exception1 = new IOException("This is the cause.");
final SQLException exception2 = new SQLException("This is the result.", exception1);
@@ -405,73 +295,39 @@ public class NoSqlDatabaseManagerTest {
context.put("hello", "world");
context.put("user", "pass");
- final LogEvent event = createStrictMock(LogEvent.class);
- final Message message = createStrictMock(Message.class);
ThreadContext.push("message1");
ThreadContext.push("stack2");
final ThreadContext.ContextStack stack = ThreadContext.getImmutableStack();
ThreadContext.clearStack();
- expect(this.connection.isClosed()).andReturn(false);
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(this.connection.createList(anyInt())).andAnswer(new IAnswer<DefaultNoSqlObject[]>() {
- @Override
- public DefaultNoSqlObject[] answer() throws Throwable {
- return new DefaultNoSqlObject[(Integer) getCurrentArguments()[0]];
- }
- });
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(this.connection.createList(anyInt())).andAnswer(new IAnswer<DefaultNoSqlObject[]>() {
- @Override
- public DefaultNoSqlObject[] answer() throws Throwable {
- return new DefaultNoSqlObject[(Integer) getCurrentArguments()[0]];
- }
- });
- expect(this.connection.createObject()).andAnswer(new IAnswer<DefaultNoSqlObject>() {
- @Override
- public DefaultNoSqlObject answer() throws Throwable {
- return new DefaultNoSqlObject();
- }
- }).atLeastOnce();
- expect(event.getLevel()).andReturn(Level.DEBUG);
- expect(event.getLoggerName()).andReturn("com.foo.NoSQLDbTest.testWriteInternal02");
- expect(event.getMessage()).andReturn(message).times(2);
- expect(message.getFormattedMessage()).andReturn("Another cool message 02.");
- expect(event.getSource()).andReturn(new StackTraceElement("com.bar.Foo", "anotherMethod03", "Foo.java", 9));
- expect(event.getMarker()).andReturn(
- MarkerManager.getMarker("AnotherMarker").addParents(MarkerManager.getMarker("Parent1").addParents(MarkerManager.getMarker("GrandParent1")),
- MarkerManager.getMarker("Parent2")));
- expect(event.getThreadId()).andReturn(1L);
- expect(event.getThreadName()).andReturn("AnotherThread-B");
- expect(event.getThreadPriority()).andReturn(1);
- expect(event.getTimeMillis()).andReturn(987654321564L).times(2);
- expect(event.getThrown()).andReturn(exception2);
- expect(event.getContextMap()).andReturn(context);
- expect(event.getContextStack()).andReturn(stack);
- this.connection.insertObject(capture(capture));
- expectLastCall();
- replay(this.provider, this.connection, event, message);
+ final LogEvent event = Log4jLogEvent.newBuilder()
+ .setLevel(Level.DEBUG)
+ .setLoggerName("com.foo.NoSQLDbTest.testWriteInternal02")
+ .setMessage(message)
+ .setSource(new StackTraceElement("com.bar.Foo", "anotherMethod03", "Foo.java", 9))
+ .setMarker(MarkerManager.getMarker("AnotherMarker").addParents(
+ MarkerManager.getMarker("Parent1").addParents(MarkerManager.getMarker("GrandParent1")),
+ MarkerManager.getMarker("Parent2")))
+ .setThreadId(1L)
+ .setThreadName("AnotherThread-B")
+ .setThreadPriority(1)
+ .setTimeMillis(987654321564L)
+ .setThrown(exception2)
+ .setContextMap(context)
+ .setContextStack(stack)
+ .build();
manager.writeInternal(event);
+ then(connection).should().insertObject(captor.capture());
- final NoSqlObject<Map<String, Object>> inserted = capture.getValue();
+ final NoSqlObject<Map<String, Object>> inserted = captor.getValue();
assertNotNull("The inserted value should not be null.", inserted);
final Map<String, Object> object = inserted.unwrap();
assertNotNull("The unwrapped object should not be null.", object);
assertEquals("The level is not correct.", Level.DEBUG, object.get("level"));
assertEquals("The logger is not correct.", "com.foo.NoSQLDbTest.testWriteInternal02",
- object.get("loggerName"));
+ object.get("loggerName"));
assertEquals("The message is not correct.", "Another cool message 02.", object.get("message"));
assertEquals("The thread is not correct.", "AnotherThread-B", object.get("threadName"));
assertEquals("The millis is not correct.", 987654321564L, object.get("millis"));
@@ -494,12 +350,12 @@ public class NoSqlDatabaseManagerTest {
@SuppressWarnings("unchecked")
final List<Object> markerParents = (List<Object>) marker.get("parents");
assertEquals("The marker parents should contain two parents", 2, markerParents.size());
-
+
assertTrue("The marker parents[0] should be a map.", markerParents.get(0) instanceof Map);
@SuppressWarnings("unchecked")
final Map<String, Object> parent1 = (Map<String, Object>) markerParents.get(0);
assertEquals("The first marker parent name is not correct.", "Parent1", parent1.get("name"));
-
+
assertTrue("The marker parents[1] should be a map.", markerParents.get(1) instanceof Map);
@SuppressWarnings("unchecked")
final Map<String, Object> parent2 = (Map<String, Object>) markerParents.get(1);
@@ -510,7 +366,7 @@ public class NoSqlDatabaseManagerTest {
@SuppressWarnings("unchecked")
final List<Object> parent1Parents = (List<Object>) parent1.get("parents");
assertEquals("The parent1 parents should have only one parent", 1, parent1Parents.size());
-
+
assertTrue("The parent1Parents[0] should be a map.", parent1Parents.get(0) instanceof Map);
@SuppressWarnings("unchecked")
final Map<String, Object> parent1parent = (Map<String, Object>) parent1Parents.get(0);
@@ -526,17 +382,17 @@ public class NoSqlDatabaseManagerTest {
@SuppressWarnings("unchecked")
final List<Map<String, Object>> stackTrace = (List<Map<String, Object>>) thrown.get("stackTrace");
assertEquals("The thrown stack trace length is not correct.", exception2.getStackTrace().length,
- stackTrace.size());
+ stackTrace.size());
for (int i = 0; i < exception2.getStackTrace().length; i++) {
final StackTraceElement e1 = exception2.getStackTrace()[i];
final Map<String, Object> e2 = stackTrace.get(i);
assertEquals("Element class name [" + i + "] is not correct.", e1.getClassName(), e2.get("className"));
assertEquals("Element method name [" + i + "] is not correct.", e1.getMethodName(),
- e2.get("methodName"));
+ e2.get("methodName"));
assertEquals("Element file name [" + i + "] is not correct.", e1.getFileName(), e2.get("fileName"));
assertEquals("Element line number [" + i + "] is not correct.", e1.getLineNumber(),
- e2.get("lineNumber"));
+ e2.get("lineNumber"));
}
assertTrue("The thrown cause should be a map.", thrown.get("cause") instanceof Map);
@SuppressWarnings("unchecked")
@@ -547,17 +403,17 @@ public class NoSqlDatabaseManagerTest {
@SuppressWarnings("unchecked")
final List<Map<String, Object>> causeStackTrace = (List<Map<String, Object>>) cause.get("stackTrace");
assertEquals("The cause stack trace length is not correct.", exception1.getStackTrace().length,
- causeStackTrace.size());
+ causeStackTrace.size());
for (int i = 0; i < exception1.getStackTrace().length; i++) {
final StackTraceElement e1 = exception1.getStackTrace()[i];
final Map<String, Object> e2 = causeStackTrace.get(i);
assertEquals("Element class name [" + i + "] is not correct.", e1.getClassName(), e2.get("className"));
assertEquals("Element method name [" + i + "] is not correct.", e1.getMethodName(),
- e2.get("methodName"));
+ e2.get("methodName"));
assertEquals("Element file name [" + i + "] is not correct.", e1.getFileName(), e2.get("fileName"));
assertEquals("Element line number [" + i + "] is not correct.", e1.getLineNumber(),
- e2.get("lineNumber"));
+ e2.get("lineNumber"));
}
assertNull("The cause should have no cause.", cause.get("cause"));
@@ -566,14 +422,6 @@ public class NoSqlDatabaseManagerTest {
assertTrue("The context stack should be list.", object.get("contextStack") instanceof List);
assertEquals("The context stack is not correct.", stack.asList(), object.get("contextStack"));
-
- verify(this.provider, this.connection, event, message);
- } finally {
- try {
- manager.close();
- } catch (final Throwable ignore) {
- /* */
- }
}
}
}
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/78c6a1fc/log4j-web/pom.xml
----------------------------------------------------------------------
diff --git a/log4j-web/pom.xml b/log4j-web/pom.xml
index 22dd052..db78e15 100644
--- a/log4j-web/pom.xml
+++ b/log4j-web/pom.xml
@@ -69,8 +69,8 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.easymock</groupId>
- <artifactId>easymock</artifactId>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>