diff options
| author | Andrew MacBean <macbean@apache.org> | 2014-07-16 11:10:07 +0000 |
|---|---|---|
| committer | Andrew MacBean <macbean@apache.org> | 2014-07-16 11:10:07 +0000 |
| commit | e33a1fc1b9847ffd2516b78725091b629f716bbf (patch) | |
| tree | 56cfaf7cae3275b30469ea97a5f5d9b02bd0fb5e /qpid/java/bdbstore/src | |
| parent | e9f4e542b245f40cdcbe4694657b19e636bbecaa (diff) | |
| download | qpid-python-e33a1fc1b9847ffd2516b78725091b629f716bbf.tar.gz | |
QPID-5891: Strengthened testRemoteNodeAdded test and created log subject matcher and improved matcher failure output
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1610968 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/bdbstore/src')
| -rw-r--r-- | qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java | 99 |
1 files changed, 82 insertions, 17 deletions
diff --git a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java index fa6170a9cc..e39ca0d740 100644 --- a/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java +++ b/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java @@ -21,7 +21,6 @@ package org.apache.qpid.server.virtualhostnode.berkeleydb; import static org.mockito.Matchers.argThat; -import static org.mockito.Matchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; @@ -32,9 +31,11 @@ import java.util.Map; import org.apache.qpid.server.logging.EventLogger; import org.apache.qpid.server.logging.LogMessage; +import org.apache.qpid.server.logging.LogSubject; import org.apache.qpid.server.logging.messages.HighAvailabilityMessages; import org.apache.qpid.server.model.SystemContext; import org.apache.qpid.test.utils.QpidTestCase; +import org.hamcrest.Description; import org.mockito.ArgumentMatcher; /** @@ -81,20 +82,20 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase _helper.assertNodeRole(node1, "MASTER"); String expectedMessage = HighAvailabilityMessages.ADDED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.ADDED_LOG_HIERARCHY))); expectedMessage = HighAvailabilityMessages.ATTACHED(node1.getName(), node1.getGroupName(), "UNKNOWN").toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.ATTACHED_LOG_HIERARCHY))); expectedMessage = HighAvailabilityMessages.STARTED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.STARTED_LOG_HIERARCHY))); expectedMessage = HighAvailabilityMessages.ROLE_CHANGED(node1.getName(), node1.getGroupName(), "UNKNOWN", "MASTER").toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.ROLE_CHANGED_LOG_HIERARCHY))); } @@ -113,11 +114,11 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.stop(); String expectedMessage = HighAvailabilityMessages.DETACHED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DETACHED_LOG_HIERARCHY))); expectedMessage = HighAvailabilityMessages.STOPPED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.STOPPED_LOG_HIERARCHY))); } @@ -137,7 +138,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.close(); String expectedMessage = HighAvailabilityMessages.DETACHED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DETACHED_LOG_HIERARCHY))); } @@ -157,11 +158,11 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.delete(); String expectedMessage = HighAvailabilityMessages.DETACHED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DETACHED_LOG_HIERARCHY))); expectedMessage = HighAvailabilityMessages.DELETED(node1.getName(), node1.getGroupName()).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DELETED_LOG_HIERARCHY))); } @@ -181,7 +182,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.setAttributes(Collections.<String, Object>singletonMap(BDBHAVirtualHostNode.PRIORITY, 10)); String expectedMessage = HighAvailabilityMessages.PRIORITY_CHANGED(node1.getName(), node1.getGroupName(), "10").toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.PRIORITY_CHANGED_LOG_HIERARCHY))); } @@ -201,7 +202,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.setAttributes(Collections.<String, Object>singletonMap(BDBHAVirtualHostNode.QUORUM_OVERRIDE, 1)); String expectedMessage = HighAvailabilityMessages.QUORUM_OVERRIDE_CHANGED(node1.getName(), node1.getGroupName(), "1").toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.QUORUM_OVERRIDE_CHANGED_LOG_HIERARCHY))); } @@ -221,7 +222,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase node1.setAttributes(Collections.<String, Object>singletonMap(BDBHAVirtualHostNode.DESIGNATED_PRIMARY, true)); String expectedMessage = HighAvailabilityMessages.DESIGNATED_PRIMARY_CHANGED(node1.getName(), node1.getGroupName(), "true").toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DESIGNATED_PRIMARY_CHANGED_LOG_HIERARCHY))); } @@ -243,8 +244,14 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase BDBHAVirtualHostNodeImpl node2 = (BDBHAVirtualHostNodeImpl)_helper.createHaVHN(node2Attributes); _helper.awaitRemoteNodes(node1, 1); + // Verify ADDED message from node2 when its created String expectedMessage = HighAvailabilityMessages.ADDED(node2.getName(), groupName).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node2.getVirtualHostNodeLogSubject())), + argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.ADDED_LOG_HIERARCHY))); + + // Verify ADDED message from node1 when it discovers node2 has been added + expectedMessage = HighAvailabilityMessages.ADDED(node2.getName(), groupName).toString(); + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.ADDED_LOG_HIERARCHY))); } @@ -273,7 +280,7 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase _helper.awaitRemoteNodes(node1, 0); String expectedMessage = HighAvailabilityMessages.DELETED(node2.getName(), groupName).toString(); - verify(_eventLogger).message(eq(node1.getVirtualHostNodeLogSubject()), + verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())), argThat(new LogMessageMatcher(expectedMessage, HighAvailabilityMessages.DELETED_LOG_HIERARCHY))); } @@ -287,9 +294,10 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase class LogMessageMatcher extends ArgumentMatcher<LogMessage> { - private String _expectedMessage; + private String _expectedMessageFailureDescription = null; private String _expectedHierarchy; + private String _expectedHierarchyFailureDescription = null; public LogMessageMatcher(String expectedMessage, String expectedHierarchy) { @@ -301,7 +309,64 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase public boolean matches(Object argument) { LogMessage logMessage = (LogMessage)argument; - return _expectedMessage.equals( logMessage.toString()) && _expectedHierarchy.equals(logMessage.getLogHierarchy()); + + boolean expectedMessageMatches = _expectedMessage.equals(logMessage.toString()); + if (!expectedMessageMatches) + { + _expectedMessageFailureDescription = "Expected message does not match. Expected: " + _expectedMessage + ", actual: " + logMessage.toString(); + } + boolean expectedHierarchyMatches = _expectedHierarchy.equals(logMessage.getLogHierarchy()); + if (!expectedHierarchyMatches) + { + _expectedHierarchyFailureDescription = "Expected hierarchy does not match. Expected: " + _expectedHierarchy + ", actual: " + logMessage.getLogHierarchy(); + } + + return expectedMessageMatches && expectedHierarchyMatches; + } + + @Override + public void describeTo(Description description) + { + if (_expectedMessageFailureDescription != null) + { + description.appendText(_expectedMessageFailureDescription); + } + if (_expectedHierarchyFailureDescription != null) + { + description.appendText(_expectedHierarchyFailureDescription); + } + } + } + + class LogSubjectMatcher extends ArgumentMatcher<LogSubject> + { + private LogSubject _logSubject; + private String _failureDescription = null; + + public LogSubjectMatcher(LogSubject logSubject) + { + _logSubject = logSubject; + } + + @Override + public boolean matches(Object argument) + { + final LogSubject logSubject = (LogSubject)argument; + final boolean foundAMatch = _logSubject.toLogString().equals(logSubject.toLogString()); + if (!foundAMatch) + { + _failureDescription = "LogSubject does not match. Expected: " + _logSubject.toLogString() + ", actual : " + logSubject.toLogString(); + } + return foundAMatch; + } + + @Override + public void describeTo(Description description) + { + if (_failureDescription != null) + { + description.appendText(_failureDescription); + } } } } |
