From 41fc6b2f9dbf6ebcd70dcaac534087ae1c7bce4c Mon Sep 17 00:00:00 2001
From: Herwin van Welbergen <hvanwelbergen@TechFak.Uni-Bielefeld.DE>
Date: Thu, 21 Nov 2013 15:32:42 +0100
Subject: [PATCH] test fixes, notifier listening to messages

---
 .../src/ipaaca/util/ComponentNotifier.java    |  2 +-
 ...ntMessageCommunicationIntegrationTest.java | 22 +++++++++----------
 .../test/src/ipaaca/CountingEventHandler.java | 11 ++++++++++
 .../java/test/src/ipaaca/JavaPythonTest.java  |  6 ++---
 .../test/src/ipaaca/StoringEventHandler.java  |  9 ++++++++
 5 files changed, 35 insertions(+), 15 deletions(-)

diff --git a/ipaacalib/java/src/ipaaca/util/ComponentNotifier.java b/ipaacalib/java/src/ipaaca/util/ComponentNotifier.java
index d08f96a..6fbebdc 100644
--- a/ipaacalib/java/src/ipaaca/util/ComponentNotifier.java
+++ b/ipaacalib/java/src/ipaaca/util/ComponentNotifier.java
@@ -161,7 +161,7 @@ public class ComponentNotifier
     {
         if(!isInitialized)
         {
-            inBuffer.registerHandler(new IUEventHandler(new ComponentNotifyHandler(), EnumSet.of(IUEventType.ADDED), ImmutableSet
+            inBuffer.registerHandler(new IUEventHandler(new ComponentNotifyHandler(), EnumSet.of(IUEventType.ADDED, IUEventType.MESSAGE), ImmutableSet
                     .of(NOTIFY_CATEGORY)));
             submitNotify(true);
             isInitialized = true;
diff --git a/ipaacalib/java/test/src/ipaaca/ComponentMessageCommunicationIntegrationTest.java b/ipaacalib/java/test/src/ipaaca/ComponentMessageCommunicationIntegrationTest.java
index f678a12..e4934ae 100644
--- a/ipaacalib/java/test/src/ipaaca/ComponentMessageCommunicationIntegrationTest.java
+++ b/ipaacalib/java/test/src/ipaaca/ComponentMessageCommunicationIntegrationTest.java
@@ -46,7 +46,7 @@ public class ComponentMessageCommunicationIntegrationTest
 
         Set<String> categories = new ImmutableSet.Builder<String>().add(CATEGORY).build();
         inBuffer = new InputBuffer("component2", categories);
-        EnumSet<IUEventType> types = EnumSet.of(IUEventType.ADDED, IUEventType.COMMITTED, IUEventType.UPDATED);
+        EnumSet<IUEventType> types = EnumSet.of(IUEventType.ADDED, IUEventType.COMMITTED, IUEventType.UPDATED, IUEventType.MESSAGE);
         component2EventHandler = new CountingEventHandler();
         component1EventHandler = new CountingEventHandler();
         inBuffer.registerHandler(new IUEventHandler(component2EventHandler, types, categories));
@@ -75,11 +75,11 @@ public class ComponentMessageCommunicationIntegrationTest
         AbstractIU iuIn = inBuffer.getIU(localIU.getUid());
         assertNull(iuIn);
         assertThat(localIU.getLinks("INIT"), containsInAnyOrder("init1", "init2"));
-        assertEquals(1, component2EventHandler.getNumberOfAddEvents(localIU.getUid()));
-        assertEquals(0, component1EventHandler.getNumberOfAddEvents(localIU.getUid()));
-        assertEquals(1, component2EventHandler.getNumberOfAddEvents(localIU.getUid()));
-        assertEquals(0, component1EventHandler.getNumberOfAddEvents(localIU.getUid()));
-        assertEquals(localIU.getUid(), component2StoreHandler.getAddedIUs().get(0).getUid());
+        assertEquals(1, component2EventHandler.getNumberOfMessageEvents(localIU.getUid()));
+        assertEquals(0, component1EventHandler.getNumberOfMessageEvents(localIU.getUid()));
+        assertEquals(1, component2EventHandler.getNumberOfMessageEvents(localIU.getUid()));
+        assertEquals(0, component1EventHandler.getNumberOfMessageEvents(localIU.getUid()));
+        assertEquals(localIU.getUid(), component2StoreHandler.getMessageIUs().get(0).getUid());
     }
 
     @Test
@@ -90,7 +90,7 @@ public class ComponentMessageCommunicationIntegrationTest
         Thread.sleep(200);
         assertEquals(0, component1EventHandler.getNumberOfCommitEvents(localIU.getUid()));
         assertEquals(0, component2EventHandler.getNumberOfCommitEvents(localIU.getUid()));
-        assertFalse(component2StoreHandler.getAddedIUs().get(0).isCommitted());
+        assertFalse(component2StoreHandler.getMessageIUs().get(0).isCommitted());
     }
 
     @Test
@@ -101,7 +101,7 @@ public class ComponentMessageCommunicationIntegrationTest
         Thread.sleep(200);
         assertEquals(0, component1EventHandler.getNumberOfCommitEvents(localIU.getUid()));
         assertEquals(0, component2EventHandler.getNumberOfCommitEvents(localIU.getUid()));
-        assertTrue(component2StoreHandler.getAddedIUs().get(0).isCommitted());
+        assertTrue(component2StoreHandler.getMessageIUs().get(0).isCommitted());
     }
 
     @Test
@@ -109,7 +109,7 @@ public class ComponentMessageCommunicationIntegrationTest
     {
         outBuffer.add(localIU);
         Thread.sleep(200);
-        AbstractIU iuIn = component2StoreHandler.getAddedIUs().get(0);
+        AbstractIU iuIn = component2StoreHandler.getMessageIUs().get(0);
 
         iuIn.commit();
         Thread.sleep(200);
@@ -123,7 +123,7 @@ public class ComponentMessageCommunicationIntegrationTest
     {
         outBuffer.add(localIU);
         Thread.sleep(200);
-        AbstractIU iuIn = component2StoreHandler.getAddedIUs().get(0);
+        AbstractIU iuIn = component2StoreHandler.getMessageIUs().get(0);
         assertNull(iuIn.getPayload().get("key2"));
 
         localIU.getPayload().put("key2", "value2");
@@ -140,7 +140,7 @@ public class ComponentMessageCommunicationIntegrationTest
         outBuffer.add(localIU);
 
         Thread.sleep(200);
-        AbstractIU iuIn = component2StoreHandler.getAddedIUs().get(0);
+        AbstractIU iuIn = component2StoreHandler.getMessageIUs().get(0);
         assertEquals("value2", iuIn.getPayload().get("key2"));
     }
 
diff --git a/ipaacalib/java/test/src/ipaaca/CountingEventHandler.java b/ipaacalib/java/test/src/ipaaca/CountingEventHandler.java
index f661040..08a06f6 100644
--- a/ipaacalib/java/test/src/ipaaca/CountingEventHandler.java
+++ b/ipaacalib/java/test/src/ipaaca/CountingEventHandler.java
@@ -10,6 +10,7 @@ import java.util.Map;
  */
 final class CountingEventHandler implements HandlerFunctor
 {
+    private Map<String,Integer> messageEvents = new HashMap<String,Integer>();
     private Map<String,Integer> commitEvents = new HashMap<String,Integer>();
     private Map<String,Integer> addEvents = new HashMap<String,Integer>();
     private Map<String,Integer> updateEvents = new HashMap<String,Integer>();
@@ -33,6 +34,7 @@ final class CountingEventHandler implements HandlerFunctor
         case ADDED:  updateEventMap(iu.getUid(),addEvents);  break;
         case COMMITTED: updateEventMap(iu.getUid(),commitEvents); break;
         case UPDATED: updateEventMap(iu.getUid(),updateEvents); break;
+        case MESSAGE: updateEventMap(iu.getUid(),messageEvents);break;
         case DELETED:
             break;
         case LINKSUPDATED:
@@ -70,4 +72,13 @@ final class CountingEventHandler implements HandlerFunctor
         }
         return updateEvents.get(iu);
     }
+    
+    public int getNumberOfMessageEvents(String iu)
+    {
+        if(!messageEvents.containsKey(iu))
+        {
+            return 0;
+        }
+        return messageEvents.get(iu);
+    }
 }
\ No newline at end of file
diff --git a/ipaacalib/java/test/src/ipaaca/JavaPythonTest.java b/ipaacalib/java/test/src/ipaaca/JavaPythonTest.java
index 95bb779..92f0b67 100644
--- a/ipaacalib/java/test/src/ipaaca/JavaPythonTest.java
+++ b/ipaacalib/java/test/src/ipaaca/JavaPythonTest.java
@@ -201,7 +201,7 @@ public class JavaPythonTest
     @Test
     public void testMessageFromPython()throws IOException, InterruptedException
     {
-        inBuffer.registerHandler(new IUEventHandler(storeHandler,EnumSet.of(IUEventType.ADDED),ImmutableSet.of("JavaPythonTest")));
+        inBuffer.registerHandler(new IUEventHandler(storeHandler,EnumSet.of(IUEventType.ADDED, IUEventType.MESSAGE),ImmutableSet.of("JavaPythonTest")));
         String pypr = PYTHON_PREAMBLE 
                 +"ob = ipaaca.OutputBuffer('pythonside')\n"
                 +"iu = ipaaca.Message('JavaPythonTest')\n"
@@ -210,7 +210,7 @@ public class JavaPythonTest
                 +"ob.add(iu)\n";
         runPythonProgram(pypr);
         Thread.sleep(200);
-        assertEquals(1,storeHandler.getAddedIUs().size());
-        assertEquals("Hello from Python!", storeHandler.getAddedIUs().get(0).getPayload().get("data"));
+        assertEquals(1,storeHandler.getMessageIUs().size());
+        assertEquals("Hello from Python!", storeHandler.getMessageIUs().get(0).getPayload().get("data"));
     }
 }
diff --git a/ipaacalib/java/test/src/ipaaca/StoringEventHandler.java b/ipaacalib/java/test/src/ipaaca/StoringEventHandler.java
index 7ba5f5b..b95c4f5 100644
--- a/ipaacalib/java/test/src/ipaaca/StoringEventHandler.java
+++ b/ipaacalib/java/test/src/ipaaca/StoringEventHandler.java
@@ -11,11 +11,17 @@ import java.util.List;
 public class StoringEventHandler implements HandlerFunctor
 {
     private List<AbstractIU> addedIUs = new ArrayList<AbstractIU>();
+    private List<AbstractIU> messageIUs = new ArrayList<AbstractIU>();
 
     public List<AbstractIU> getAddedIUs()
     {
         return addedIUs;
     }
+    
+    public List<AbstractIU> getMessageIUs()
+    {
+        return messageIUs;
+    }
 
     @Override
     public void handle(AbstractIU iu, IUEventType type, boolean local)
@@ -25,6 +31,9 @@ public class StoringEventHandler implements HandlerFunctor
         case ADDED:
             addedIUs.add(iu);
             break;
+        case MESSAGE:
+            messageIUs.add(iu);
+            break;
         case COMMITTED:
             break;
         case UPDATED:
-- 
GitLab