From 008dfff5a2370cebe1611342293473e47a26be05 Mon Sep 17 00:00:00 2001
From: brinn <brinn>
Date: Tue, 13 Mar 2012 18:09:43 +0000
Subject: [PATCH] Improve logging of eager shuffling (including some timing
 information so the performance can be assessed).

SVN: 24708
---
 .../cisd/common/concurrent/MessageChannel.java  | 17 +++++++++++++++++
 .../cisd/common/logging/MockLogger.java         |  5 +++++
 2 files changed, 22 insertions(+)

diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/concurrent/MessageChannel.java b/common/sourceTest/java/ch/systemsx/cisd/common/concurrent/MessageChannel.java
index 1a40a9ad1e1..6bdf0999a2d 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/concurrent/MessageChannel.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/concurrent/MessageChannel.java
@@ -17,6 +17,7 @@
 package ch.systemsx.cisd.common.concurrent;
 
 import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
 
 import java.util.concurrent.BlockingQueue;
 import java.util.concurrent.LinkedBlockingQueue;
@@ -79,6 +80,22 @@ public class MessageChannel
         }
     }
 
+    /**
+     * Asserts specified expected message is part of next message to be received. Waits not longer
+     * than specified in the constructor.
+     */
+    public void assertNextMessageContains(Object expectedMessagePart)
+    {
+        try
+        {
+            assertTrue(_queue.poll(_timeOutInMilliSeconds, TimeUnit.MILLISECONDS).toString()
+                    .contains(expectedMessagePart.toString()));
+        } catch (InterruptedException e)
+        {
+            // ignored
+        }
+    }
+
     /**
      * Asserts empty message queue.
      */
diff --git a/common/sourceTest/java/ch/systemsx/cisd/common/logging/MockLogger.java b/common/sourceTest/java/ch/systemsx/cisd/common/logging/MockLogger.java
index a57e88cf342..b63fd13307b 100644
--- a/common/sourceTest/java/ch/systemsx/cisd/common/logging/MockLogger.java
+++ b/common/sourceTest/java/ch/systemsx/cisd/common/logging/MockLogger.java
@@ -41,6 +41,11 @@ public final class MockLogger implements ISimpleLogger
         messageChannel.assertNextMessage(expectedMessage);
     }
     
+    public void assertNextLogMessageContains(String expectedMessagePart)
+    {
+        messageChannel.assertNextMessageContains(expectedMessagePart);
+    }
+    
     public void assertNoMoreLogMessages()
     {
         messageChannel.assertEmpty();
-- 
GitLab