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