summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2014-08-13 14:28:23 +0000
committerAlex Rudyy <orudyy@apache.org>2014-08-13 14:28:23 +0000
commitca2595ecc99419623a36dfb2d266567fe2f70de3 (patch)
tree7079e9580ca4df2e3fa4703894a8fa287a154f21
parentbe9eacaeb0e5c1dfb1c68596e836477bff1bdc4b (diff)
downloadqpid-python-ca2595ecc99419623a36dfb2d266567fe2f70de3.tar.gz
QPID-5994: Fix ocasionally failing test BDBHAVirtualHostNodeOperationalLoggingTest.testRemoteNodeReAttached
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1617736 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/java/bdbstore/src/test/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeOperationalLoggingTest.java55
1 files changed, 41 insertions, 14 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 45527313e6..ef1021160c 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
@@ -24,7 +24,6 @@ import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.*;
import java.util.Collections;
-import java.util.List;
import java.util.Map;
import org.apache.qpid.server.logging.EventLogger;
@@ -34,7 +33,6 @@ import org.apache.qpid.server.logging.messages.HighAvailabilityMessages;
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.test.utils.QpidTestCase;
import org.hamcrest.Description;
-import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentMatcher;
/**
@@ -360,22 +358,51 @@ public class BDBHAVirtualHostNodeOperationalLoggingTest extends QpidTestCase
reset(_eventLogger);
node2 = (BDBHAVirtualHostNodeImpl)_helper.recoverHaVHN(node2.getId(), node2Attributes);
- _helper.assertNodeRole(node2, "REPLICA");
-
+ _helper.assertNodeRole(node2, "REPLICA", "MASTER");
waitForNodeDetachedField(remoteNode, false);
- ArgumentCaptor<LogSubject> subjectArgument = ArgumentCaptor.forClass(LogSubject.class);
- ArgumentCaptor<LogMessage> messageArgument = ArgumentCaptor.forClass(LogMessage.class);
- verify(_eventLogger, times(2)).message(subjectArgument.capture(), messageArgument.capture());
-
- assertEquals("Unexpected subject", node1.getVirtualHostNodeLogSubject(), subjectArgument.getValue());
+ final String expectedMessage = HighAvailabilityMessages.ATTACHED(node2.getName(), groupName, "REPLICA").toString();
+ final String expectedMessage2 = HighAvailabilityMessages.ATTACHED(node2.getName(), groupName, "UNKNOWN").toString();
+ final String expectedMessage3 = HighAvailabilityMessages.ATTACHED(node2.getName(), groupName, "MASTER").toString();
+ ArgumentMatcher<LogMessage> matcher = new ArgumentMatcher<LogMessage>()
+ {
+ private String _messageErrorDescription = null;
+ private String _hierarchyErrorDescription = null;
- String expectedMessage = HighAvailabilityMessages.ATTACHED(node2.getName(), groupName, "REPLICA").toString();
- String expectedMessage2 = HighAvailabilityMessages.ATTACHED(node2.getName(), groupName, "UNKNOWN").toString();
+ @Override
+ public boolean matches(Object argument)
+ {
+ LogMessage logMessage = (LogMessage)argument;
+ String actualMessage = logMessage.toString();
+ boolean expectedMessageMatches = expectedMessage.equals(actualMessage)
+ || expectedMessage2.equals(actualMessage) || expectedMessage3.equals(actualMessage);
+ if (!expectedMessageMatches)
+ {
+ _messageErrorDescription = "Actual message does not match any expected: " + actualMessage;
+ }
+ boolean expectedHierarchyMatches = HighAvailabilityMessages.ATTACHED_LOG_HIERARCHY.equals(logMessage.getLogHierarchy());
+ if (!expectedHierarchyMatches)
+ {
+ _hierarchyErrorDescription = "Actual hierarchy does not match expected: " + logMessage.getLogHierarchy();
+ }
+ return expectedMessageMatches && expectedHierarchyMatches;
+ }
- List<LogMessage> capturedValues = messageArgument.getAllValues();
- String m = capturedValues.get(0).toString();
- assertTrue("Unexpected attached message :" + m, m.equals(expectedMessage) || m.equals(expectedMessage2));
+ @Override
+ public void describeTo(Description description)
+ {
+ if (_messageErrorDescription != null)
+ {
+ description.appendText(_messageErrorDescription);
+ }
+ if (_hierarchyErrorDescription != null)
+ {
+ description.appendText(_hierarchyErrorDescription);
+ }
+ }
+ };
+ verify(_eventLogger).message(argThat(new LogSubjectMatcher(node1.getVirtualHostNodeLogSubject())),
+ argThat(matcher));
}
private void waitForNodeDetachedField(BDBHARemoteReplicationNodeImpl remoteNode, boolean expectedDetached) throws InterruptedException {