diff --git a/web/api/src/test/java/org/onosproject/rest/resources/HostResourceTest.java b/web/api/src/test/java/org/onosproject/rest/resources/HostResourceTest.java
index 5ab2614..808fb42 100644
--- a/web/api/src/test/java/org/onosproject/rest/resources/HostResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/resources/HostResourceTest.java
@@ -161,6 +161,25 @@
                 }
             }
 
+            //  Check host auxLocations
+            if (jsonHost.get("auxLocations") != null) {
+                final JsonArray jsonAuxLocations = jsonHost.get("auxLocations").asArray();
+                final Set<HostLocation> expectedAuxLocations = host.auxLocations();
+                if (jsonAuxLocations.size() != expectedAuxLocations.size()) {
+                    reason = "auxLocations arrays differ in size";
+                    return false;
+                }
+
+                jsonIterator = jsonAuxLocations.iterator();
+                locIterator = expectedAuxLocations.iterator();
+                while (jsonIterator.hasNext()) {
+                    boolean result = verifyLocation(jsonIterator.next().asObject(), locIterator.next());
+                    if (!result) {
+                        return false;
+                    }
+                }
+            }
+
             //  Check Ip Addresses
             final JsonArray jsonHostIps = jsonHost.get("ipAddresses").asArray();
             final Set<IpAddress> expectedHostIps = host.ipAddresses();
