@Test public void testServiceUsesDependency() { ServiceAction sAction = new ServiceAction("shell", TestHelper.actionMapOf(null, null)); Map<ProvisionerAction, ServiceAction> installActions = ImmutableMap.of(ProvisionerAction.INSTALL, sAction); Service s1 = Service.builder().setName("s1").setProvisionerActions(installActions).build(); Service s2 = Service.builder() .setName("s2") .setDependencies( ServiceDependencies.builder().setInstallDependencies( new ServiceStageDependencies(null, ImmutableSet.<String>of("s1", "s3"))).build()) .setProvisionerActions(installActions) .build(); Map<String, Service> serviceMap = Maps.newHashMap(); serviceMap.put(s1.getName(), s1); serviceMap.put(s2.getName(), s2); SetMultimap<ActionOnService, ActionOnService> expected = HashMultimap.create(); // s2 depends on s1 expected.put(new ActionOnService(ProvisionerAction.INSTALL, "s2"), new ActionOnService(ProvisionerAction.INSTALL, "s1")); ServiceDependencyResolver resolver = new ServiceDependencyResolver(Actions.getInstance(), serviceMap); SetMultimap<ActionOnService, ActionOnService> actual = resolver.getClusterDependencies(); Assert.assertEquals(expected, actual); } }
expected.put("s5", "s3"); expected.put("s5", "s4"); ServiceDependencyResolver resolver = new ServiceDependencyResolver(Actions.getInstance(), serviceMap); SetMultimap<String, String> actual = resolver.getRuntimeServiceDependencies(); Assert.assertEquals(expected, actual);
expected.put("s3", "s2-v1"); expected.put("s3", "s2-v2"); ServiceDependencyResolver resolver = new ServiceDependencyResolver(Actions.getInstance(), serviceMap); SetMultimap<String, String> actual = resolver.getRuntimeServiceDependencies(); Assert.assertEquals(expected, actual);
new ActionOnService(ProvisionerAction.START, "s5")); ServiceDependencyResolver resolver = new ServiceDependencyResolver(Actions.getInstance(), serviceMap); SetMultimap<ActionOnService, ActionOnService> actual = resolver.getClusterDependencies(); Assert.assertEquals(expected, actual);
new ActionOnService(ProvisionerAction.INSTALL, "s5")); ServiceDependencyResolver resolver = new ServiceDependencyResolver(Actions.getInstance(), serviceMap); SetMultimap<ActionOnService, ActionOnService> actual = resolver.getClusterDependencies(); Assert.assertEquals(expected, actual);