[VOL-3518] Multi-threaded packet processing in maclearner app

Change-Id: I9eb3ebec813a1f002fe0be3da46257cca1c81ff6
diff --git a/app/src/test/java/org/opencord/maclearner/app/impl/MacLearnerManagerTest.java b/app/src/test/java/org/opencord/maclearner/app/impl/MacLearnerManagerTest.java
index adb59db..adfbc5a 100644
--- a/app/src/test/java/org/opencord/maclearner/app/impl/MacLearnerManagerTest.java
+++ b/app/src/test/java/org/opencord/maclearner/app/impl/MacLearnerManagerTest.java
@@ -33,12 +33,16 @@
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
+import static org.onlab.junit.TestTools.assertAfter;
 
 /**
  * Set of tests of the Mac Learner ONOS application component.
  */
 public class MacLearnerManagerTest extends TestBaseMacLearner {
 
+    private static final int DELAY = 250;
+    private static final int PROCESSING_LENGTH = 500;
+
     @Before
     public void setUp() throws IOException {
         setUpApp();
@@ -65,10 +69,13 @@
                 CLIENT_VLAN,
                 VlanId.NONE,
                 CLIENT_CP));
-        Optional<MacAddress> macAddress = macLearnerManager.getMacMapping(CLIENT_CP.deviceId(),
-                CLIENT_CP.port(), CLIENT_VLAN);
-        assertTrue(macAddress.isPresent());
-        assertEquals(CLIENT_MAC, macAddress.get());
+        assertAfter(DELAY, PROCESSING_LENGTH, () -> {
+            Optional<MacAddress> macAddress =
+                    macLearnerManager.getMacMapping(CLIENT_CP.deviceId(),
+                                                    CLIENT_CP.port(), CLIENT_VLAN);
+            assertTrue(macAddress.isPresent());
+            assertEquals(CLIENT_MAC, macAddress.get());
+        });
     }
 
     @Test
@@ -77,10 +84,13 @@
                 CLIENT_VLAN,
                 CLIENT_QINQ_VLAN,
                 CLIENT_CP));
-        Optional<MacAddress> macAddress = macLearnerManager.getMacMapping(CLIENT_CP.deviceId(),
-                CLIENT_CP.port(), CLIENT_QINQ_VLAN);
-        assertTrue(macAddress.isPresent());
-        assertEquals(CLIENT_MAC, macAddress.get());
+        assertAfter(DELAY, PROCESSING_LENGTH, () -> {
+            Optional<MacAddress> macAddress = macLearnerManager.getMacMapping(CLIENT_CP.deviceId(),
+                                                                              CLIENT_CP.port(), CLIENT_QINQ_VLAN);
+            assertTrue(macAddress.isPresent());
+            assertEquals(CLIENT_MAC, macAddress.get());
+        });
+
     }
 
     @Test
@@ -89,15 +99,17 @@
                 CLIENT_VLAN,
                 CLIENT_QINQ_VLAN,
                 CLIENT_CP));
-        HostId hostId = HostId.hostId(CLIENT_MAC, CLIENT_QINQ_VLAN);
-        Host host = hostService.getHost(hostId);
-        assertNotNull(host);
-        assertEquals(OLT_DEVICE_ID, host.location().deviceId());
-        assertEquals(UNI_PORT, host.location().port());
-        Optional<HostLocation> optAuxLoc = host.auxLocations().stream().findFirst();
-        assertTrue(optAuxLoc.isPresent());
-        assertEquals(AGG_DEVICE_ID, optAuxLoc.get().deviceId());
-        assertEquals(AGG_OLT_PORT, optAuxLoc.get().port());
+        assertAfter(DELAY, PROCESSING_LENGTH, () -> {
+            HostId hostId = HostId.hostId(CLIENT_MAC, CLIENT_QINQ_VLAN);
+            Host host = hostService.getHost(hostId);
+            assertNotNull(host);
+            assertEquals(OLT_DEVICE_ID, host.location().deviceId());
+            assertEquals(UNI_PORT, host.location().port());
+            Optional<HostLocation> optAuxLoc = host.auxLocations().stream().findFirst();
+            assertTrue(optAuxLoc.isPresent());
+            assertEquals(AGG_DEVICE_ID, optAuxLoc.get().deviceId());
+            assertEquals(AGG_OLT_PORT, optAuxLoc.get().port());
+        });
     }
 
 }