function verifyCacheEntries(oExpectedEntries, aNonExistingKeys, assert) {
					var oExpectedEntries = oExpectedEntries || {};
					aNonExistingKeys = aNonExistingKeys || [];
					if (aNonExistingKeys && !Array.isArray(aNonExistingKeys)) {
						aNonExistingKeys = [aNonExistingKeys];
					}

					//Create promise for each item that must be inside the cache
					var existingPromises = Object.keys(oExpectedEntries).map(function(key) {
						return oCache.get(key).then(function(existingValue) {
							assert.deepEqual(existingValue, oExpectedEntries[key], "Values for key [" + key + "] should match.");
							return true;
						});
					});
					aNonExistingKeys = aNonExistingKeys || [];
					var nonExistingPromises = aNonExistingKeys.map(function(key) {
						return oCache.has(key).then(function(found) {
							assert.equal(false, found, "The key " + key + " should not exist.");
							if (found) {
								throw new Error("unexpected key found: ", key);
							}
							return true;
						});
					});
					return Promise.all(existingPromises.concat(nonExistingPromises));
				}
Verifies that that given key(s) exists with given value
@param oExpectedEntries an object of keys and their values expected to exist in the cache
@param aNonExistingKeys array of strings with the keys of non-existing entries
@returns {Promise} that will resolve if all checks are completed (regardless its failure/success) or reject if checks are not completed within a given timeout (5 seconds)