### Question:
InMemClusterMetadataStore implements ClusterMetadataStore { @Override public synchronized void updateClusterAssignmentData(ClusterAssignmentData assignmentData) { this.assignmentData = assignmentData; watchers.values().forEach(wae -> wae.executor.execute(() -> wae.watcher.accept(null))); } InMemClusterMetadataStore(int numStorageContainers); @Override synchronized boolean initializeCluster(int numStorageContainers,
                                               Optional<String> segmentStorePath); @Override synchronized ClusterAssignmentData getClusterAssignmentData(); @Override synchronized void updateClusterAssignmentData(ClusterAssignmentData assignmentData); @Override synchronized void watchClusterAssignmentData(Consumer<Void> watcher, Executor executor); @Override synchronized void unwatchClusterAssignmentData(Consumer<Void> watcher); @Override synchronized ClusterMetadata getClusterMetadata(); @Override synchronized void updateClusterMetadata(ClusterMetadata clusterMetadata); @Override void close();  }### Answer:
@Test public void testUpdateClusterAssignmentData() { ClusterAssignmentData assignmentData = ClusterAssignmentData.newBuilder() .putServers( "server-0", ServerAssignmentData.newBuilder() .addContainers(1L) .addContainers(2L) .build()) .build(); store.updateClusterAssignmentData(assignmentData); assertEquals(assignmentData, store.getClusterAssignmentData()); }