### Question:
BlobSynchronizer { public Set<String> getKeySetToDownload(Set<String> blobStoreKeySet, Set<String> zookeeperKeySet) { zookeeperKeySet.removeAll(blobStoreKeySet); LOG.debug("Key list to download {}", zookeeperKeySet); return zookeeperKeySet; } BlobSynchronizer(BlobStore blobStore, Map conf); void setNimbusInfo(NimbusInfo nimbusInfo); void setZookeeperKeySet(Set<String> zookeeperKeySet); void setBlobStoreKeySet(Set<String> blobStoreKeySet); Set<String> getBlobStoreKeySet(); Set<String> getZookeeperKeySet(); synchronized void syncBlobs(); void deleteKeySetFromBlobStoreNotOnZookeeper(Set<String> keySetBlobStore, Set<String> keySetZookeeper); Set<String> getKeySetToDownload(Set<String> blobStoreKeySet, Set<String> zookeeperKeySet);  }### Answer:
@Test public void testBlobSynchronizerForKeysToDownload() { BlobStore store = initLocalFs(); BlobSynchronizer sync = new BlobSynchronizer(store, conf); Set<String> zkSet = new HashSet<String>(); zkSet.add("key1"); Set<String> blobStoreSet = new HashSet<String>(); blobStoreSet.add("key1"); Set<String> resultSet = sync.getKeySetToDownload(blobStoreSet, zkSet); assertTrue("Not Empty", resultSet.isEmpty()); zkSet.add("key1"); blobStoreSet.add("key2"); resultSet = sync.getKeySetToDownload(blobStoreSet, zkSet); assertTrue("Not Empty", resultSet.isEmpty()); blobStoreSet.remove("key1"); blobStoreSet.remove("key2"); zkSet.add("key1"); resultSet = sync.getKeySetToDownload(blobStoreSet, zkSet); assertTrue("Unexpected keys to download", (resultSet.size() == 1) && (resultSet.contains("key1"))); }