You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ma...@apache.org on 2014/07/16 13:10:07 UTC
svn commit: r1610968 -
/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
Author: macbean
Date: Wed Jul 16 11:10:07 2014
New Revision: 1610968
URL: http://svn.apache.org/r1610968
Log:
QPID-5891: Strengthened testRemoteNodeAdded test and created log subject matcher and improved matcher failure output
Modified:
qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
Modified: qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java?rev=1610968&r1=1610967&r2=1610968&view=diff
==============================================================================
--- qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java (original)
+++ qpid/trunk/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java Wed Jul 16 11:10:07 2014
@@ -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 BDBHAVirtualHostNodeOperati
_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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
_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 BDBHAVirtualHostNodeOperati
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 BDBHAVirtualHostNodeOperati
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);
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org