diff --git a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
index e86649aae87f59b15245e1b366ff57bfffdb6ac0..f363ef1be3ec70d63013b784a392d3f1051b8719 100644
--- a/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
+++ b/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java
@@ -41,10 +41,12 @@ import java.util.Collections;
 import java.util.Date;
 import java.util.EnumSet;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 
 import net.floodlightcontroller.core.IFloodlightProviderService;
@@ -1568,17 +1570,20 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         Entity entity4 = new Entity(4L, (short)4, 3, 5L, 2, new Date());
         Entity entity5 = new Entity(1L, (short)4, 3, 5L, 2, new Date());
 
-        deviceManager.learnDeviceByEntity(entity1);
+        Device d1 = deviceManager.learnDeviceByEntity(entity1);
         deviceManager.learnDeviceByEntity(entity2);
-        deviceManager.learnDeviceByEntity(entity3);
-        deviceManager.learnDeviceByEntity(entity4);
+        Device d3 = deviceManager.learnDeviceByEntity(entity3);
+        Device d4 = deviceManager.learnDeviceByEntity(entity4);
+
+        IDevice d;
 
         Iterator<? extends IDevice> iter =
                 deviceManager.queryDevices(null, (short)1, 1, null, null);
         int count = 0;
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            assertEquals(d1.getDeviceKey(), d.getDeviceKey());
         }
         assertEquals(1, count);
 
@@ -1586,7 +1591,8 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         count = 0;
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            assertEquals(d3.getDeviceKey(), d.getDeviceKey());
         }
         assertEquals(1, count);
 
@@ -1598,13 +1604,34 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         }
         assertEquals(0, count);
 
-        deviceManager.learnDeviceByEntity(entity5);
+        Device d5 = deviceManager.learnDeviceByEntity(entity5);
         iter = deviceManager.queryDevices(null, (short)4, 3, null, null);
         count = 0;
+        Set<Long> deviceKeysFromIterator = new HashSet<Long>();
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            deviceKeysFromIterator.add(d.getDeviceKey());
         }
+        Set<Long> expectedDeviceKeys = new HashSet<Long>();
+        expectedDeviceKeys.add(d4.getDeviceKey());
+        expectedDeviceKeys.add(d5.getDeviceKey());
+        assertEquals(expectedDeviceKeys, deviceKeysFromIterator);
+        assertEquals(2, count);
+
+
+        iter = deviceManager.queryDevices(1L, null, null, null, null);
+        count = 0;
+        deviceKeysFromIterator = new HashSet<Long>();
+        while (iter.hasNext()) {
+            count += 1;
+            d = iter.next();
+            deviceKeysFromIterator.add(d.getDeviceKey());
+        }
+        expectedDeviceKeys = new HashSet<Long>();
+        expectedDeviceKeys.add(d1.getDeviceKey());
+        expectedDeviceKeys.add(d5.getDeviceKey());
+        assertEquals(expectedDeviceKeys, deviceKeysFromIterator);
         assertEquals(2, count);
     }
 
@@ -1616,6 +1643,9 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         indexFields.add(IDeviceService.DeviceField.VLAN);
         deviceManager.addIndex(false, indexFields);
 
+        indexFields = EnumSet.noneOf(IDeviceService.DeviceField.class);
+        deviceManager.addIndex(false, indexFields);
+
         ITopologyService mockTopology = createMock(ITopologyService.class);
         deviceManager.topology = mockTopology;
         expect(mockTopology.isAttachmentPointPort(anyLong(),
@@ -1646,31 +1676,39 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         Entity entity4 = new Entity(4L, (short)4, 3, 5L, 2, new Date());
         Entity entity5 = new Entity(1L, (short)4, 3, 5L, 2, new Date());
 
-        IDevice d = deviceManager.learnDeviceByEntity(entity1);
-        deviceManager.learnDeviceByEntity(entity2);
-        deviceManager.learnDeviceByEntity(entity3);
-        deviceManager.learnDeviceByEntity(entity4);
+        IDevice d1 = deviceManager.learnDeviceByEntity(entity1);
+        IDevice d2 = deviceManager.learnDeviceByEntity(entity2);
+        IDevice d3 = deviceManager.learnDeviceByEntity(entity3);
+        IDevice d4 = deviceManager.learnDeviceByEntity(entity4);
+        assertEquals(d1.getEntityClass(), d2.getEntityClass());
+        assertEquals(d1.getEntityClass(), d3.getEntityClass());
+        assertEquals(d1.getEntityClass(), d4.getEntityClass());
+
+        IDevice d;
 
         Iterator<? extends IDevice> iter =
-                deviceManager.queryClassDevices(d.getEntityClass(), null,
+                deviceManager.queryClassDevices(d1.getEntityClass(), null,
                                                 (short)1, 1, null, null);
         int count = 0;
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            assertEquals(d1.getDeviceKey(), d.getDeviceKey());
         }
         assertEquals(1, count);
 
-        iter = deviceManager.queryClassDevices(d.getEntityClass(), null,
+        iter = deviceManager.queryClassDevices(d1.getEntityClass(), null,
                                                (short)3, 3, null, null);
         count = 0;
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            assertEquals(d3.getDeviceKey(), d.getDeviceKey());
+
         }
         assertEquals(1, count);
 
-        iter = deviceManager.queryClassDevices(d.getEntityClass(), null,
+        iter = deviceManager.queryClassDevices(d1.getEntityClass(), null,
                                                (short)1, 3, null, null);
         count = 0;
         while (iter.hasNext()) {
@@ -1679,14 +1717,21 @@ public class DeviceManagerImplTest extends FloodlightTestCase {
         }
         assertEquals(0, count);
 
-        deviceManager.learnDeviceByEntity(entity5);
-        iter = deviceManager.queryClassDevices(d.getEntityClass(), null,
+        IDevice d5 = deviceManager.learnDeviceByEntity(entity5);
+        assertEquals(d1.getEntityClass(), d5.getEntityClass());
+        iter = deviceManager.queryClassDevices(d1.getEntityClass(), null,
                                                (short)4, 3, null, null);
         count = 0;
+        Set<Long> deviceKeysFromIterator = new HashSet<Long>();
         while (iter.hasNext()) {
             count += 1;
-            iter.next();
+            d = iter.next();
+            deviceKeysFromIterator.add(d.getDeviceKey());
         }
+        Set<Long> expectedDeviceKeys = new HashSet<Long>();
+        expectedDeviceKeys.add(d4.getDeviceKey());
+        expectedDeviceKeys.add(d5.getDeviceKey());
+        assertEquals(expectedDeviceKeys, deviceKeysFromIterator);
         assertEquals(2, count);
     }