@Test
public void testAllOptions() throws Exception {
ClusterControllerFactory factory = mock(ClusterControllerFactory.class);
ClusterController controller = mock(ClusterController.class);
when(factory.create((String) any())).thenReturn(controller);
NodeMetadata node1 = new NodeMetadataBuilder().name("name1").ids("id1")
.location(new LocationBuilder().scope(LocationScope.PROVIDER)
.id("location-id1").description("location-desc1").build())
.imageId("image-id").state(NodeState.RUNNING)
.publicAddresses(Lists.newArrayList("127.0.0.1"))
.privateAddresses(Lists.newArrayList("127.0.0.1")).build();
NodeMetadata node2 = new NodeMetadataBuilder().name("name2").ids("id2")
.location(new LocationBuilder().scope(LocationScope.PROVIDER)
.id("location-id2").description("location-desc2").build())
.imageId("image-id").state(NodeState.RUNNING)
.publicAddresses(Lists.newArrayList("127.0.0.2"))
.privateAddresses(Lists.newArrayList("127.0.0.2")).build();
when(controller.getNodes((ClusterSpec) any())).thenReturn(
(Set) Sets.newLinkedHashSet(Lists.newArrayList(node1, node2)));
when(controller.getInstances((ClusterSpec)any(), (ClusterStateStore)any()))
.thenCallRealMethod();
ClusterStateStore memStore = new MemoryClusterStateStore();
memStore.save(createTestCluster(
new String[]{"id1", "id2"}, new String[]{"role1", "role2"}));