diff --git a/pom.xml b/pom.xml
index 0c507cf..efae810 100644
--- a/pom.xml
+++ b/pom.xml
@@ -139,17 +139,21 @@
-
- org.slf4j
- slf4j-log4j12
- ${slf4j.version}
- test
-
org.apache.tinkerpop
gremlin-core
${tinkerpop.version}
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+ log4j
+ log4j
+
+
junit
@@ -173,13 +177,6 @@
aws-java-sdk-core
${aws.java.sdk.version}
-
-
- log4j
- log4j
- 1.2.17
- test
-
commons-configuration
commons-configuration
@@ -201,6 +198,12 @@
guava
${guava.version}
+
+ ch.qos.logback
+ logback-classic
+ 1.2.3
+ test
+
org.mockito
mockito-all
diff --git a/src/test/java/com/amazon/janusgraph/TestCiHeartbeat.java b/src/test/java/com/amazon/janusgraph/TestCiHeartbeat.java
index 00a8348..1c3b3be 100644
--- a/src/test/java/com/amazon/janusgraph/TestCiHeartbeat.java
+++ b/src/test/java/com/amazon/janusgraph/TestCiHeartbeat.java
@@ -15,79 +15,58 @@
package com.amazon.janusgraph;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import org.apache.log4j.Appender;
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.apache.log4j.spi.LoggingEvent;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
+import com.amazon.janusgraph.testutils.HeartbeatTimerTask;
+import com.amazon.janusgraph.testutils.LoggerTestUtil;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
import org.junit.runner.RunWith;
-import org.mockito.ArgumentCaptor;
-import org.mockito.Captor;
-import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import com.amazon.janusgraph.testutils.CiHeartbeat;
/**
- *
- * @author Johan Jacobs
+ * Refer to https://www.baeldung.com/logback
+ * @author Minghui Tang
*
*/
@RunWith(MockitoJUnitRunner.class)
public class TestCiHeartbeat {
-
@Rule
public final TestName testName = new TestName();
- @Mock
- private Appender mockAppender;
- @Captor
- private ArgumentCaptor captorLoggingEvent;
+ private ListAppender ciHeartbeatListAppender;
+ private ListAppender heartbeatTimerListAppender;
+ private CiHeartbeat ciHeartbeat;
@Before
public void setup() {
+ ciHeartbeatListAppender = LoggerTestUtil.getListAppenderForClass(CiHeartbeat.class);
+ heartbeatTimerListAppender = LoggerTestUtil.getListAppenderForClass(HeartbeatTimerTask.class);
- final Logger root = Logger.getRootLogger();
- root.addAppender(mockAppender);
- root.setLevel(Level.WARN);
+ ciHeartbeat = new CiHeartbeat(500, 3);
}
@Test
- public void testHeartbeatConsoleOutput() throws InterruptedException {
-
- final CiHeartbeat ciHeartbeat = new CiHeartbeat(500, 3);
+ public void testHeartbeatConsoleOutput() throws InterruptedException{
+ // given
+ // when
ciHeartbeat.startHeartbeat(testName.getMethodName());
Thread.sleep(2000);
ciHeartbeat.stopHeartbeat();
- verify(mockAppender, times(6)).doAppend(captorLoggingEvent.capture());
-
- final LoggingEvent unitTestStartEvent = captorLoggingEvent.getAllValues().get(0);
- Assert.assertEquals("Heartbeat - [started] - testHeartbeatConsoleOutput - 0ms", unitTestStartEvent.getMessage());
-
- final LoggingEvent heartbeatOneEvent = captorLoggingEvent.getAllValues().get(1);
- Assert.assertTrue(heartbeatOneEvent.getMessage().toString().contains("Heartbeat - [1] - testHeartbeatConsoleOutput - "));
-
- final LoggingEvent heartbeatTwoEvent = captorLoggingEvent.getAllValues().get(2);
- Assert.assertTrue(heartbeatTwoEvent.getMessage().toString().contains("Heartbeat - [2] - testHeartbeatConsoleOutput - "));
-
- final LoggingEvent heartbeatThreeEvent = captorLoggingEvent.getAllValues().get(3);
- Assert.assertTrue(heartbeatThreeEvent.getMessage().toString().contains("Heartbeat - [3] - testHeartbeatConsoleOutput - "));
-
- final LoggingEvent heartbeatfourEvent = captorLoggingEvent.getAllValues().get(4);
- Assert.assertTrue(heartbeatfourEvent.getMessage().toString().contains("Heartbeat - [4] - testHeartbeatConsoleOutput - "));
-
- final LoggingEvent unitTestEndEvent = captorLoggingEvent.getAllValues().get(5);
- Assert.assertTrue(unitTestEndEvent.getMessage().toString().contains("Heartbeat - [finished] - testHeartbeatConsoleOutput - "));
+ // then
+ Assert.assertEquals(ciHeartbeatListAppender.list.get(0).getFormattedMessage(), "Heartbeat - [started] - testHeartbeatConsoleOutput - 0ms");
+ Assert.assertTrue(heartbeatTimerListAppender.list.get(0).getMessage().contains("Heartbeat - [1] - testHeartbeatConsoleOutput - "));
+ Assert.assertTrue(heartbeatTimerListAppender.list.get(1).getMessage().contains("Heartbeat - [2] - testHeartbeatConsoleOutput - "));
+ Assert.assertTrue(heartbeatTimerListAppender.list.get(2).getMessage().contains("Heartbeat - [3] - testHeartbeatConsoleOutput - "));
+ Assert.assertTrue(ciHeartbeatListAppender.list.get(1).getMessage().contains( "Heartbeat - [finished] - testHeartbeatConsoleOutput - "));
}
}
diff --git a/src/test/java/com/amazon/janusgraph/testutils/LoggerTestUtil.java b/src/test/java/com/amazon/janusgraph/testutils/LoggerTestUtil.java
new file mode 100644
index 0000000..a11b677
--- /dev/null
+++ b/src/test/java/com/amazon/janusgraph/testutils/LoggerTestUtil.java
@@ -0,0 +1,19 @@
+package com.amazon.janusgraph.testutils;
+
+import ch.qos.logback.classic.Logger;
+import ch.qos.logback.classic.spi.ILoggingEvent;
+import ch.qos.logback.core.read.ListAppender;
+import org.slf4j.LoggerFactory;
+
+public class LoggerTestUtil {
+ public static ListAppender getListAppenderForClass(Class clazz) {
+ Logger logger = (Logger) LoggerFactory.getLogger(clazz);
+
+ ListAppender loggingEventListAppender = new ListAppender<>();
+ loggingEventListAppender.start();
+
+ logger.addAppender(loggingEventListAppender);
+
+ return loggingEventListAppender;
+ }
+}
diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml
new file mode 100644
index 0000000..7e2e2e6
--- /dev/null
+++ b/src/test/resources/logback.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+ %d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
\ No newline at end of file