@VisibleForTesting void createRolesIfNecessary(ImmutableList.Builder<Statement> statements) { // The roles directory must contain one file for each role definition if (roles.isPresent() && !roles.get().isEmpty()) { statements.add(exec("{md} " + rolePath)); for (Role role : roles.get()) { statements.add(createOrOverwriteFile(rolePath + "/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString()))); } } }
public Role build() { return new Role(name, Optional.fromNullable(description), Optional.fromNullable(jsonDefaultAttributes), Optional.fromNullable(jsonOverrideAttributes), Optional.fromNullable(runlist)); } }
public void testCreateRolesIfNecessaryWithOneRole() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); RunList runlist = RunList.builder().recipe("bar").build(); Role role = Role.builder().name("foo").runlist(runlist).build(); ChefSolo solo = ChefSolo.builder().defineRole(role).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expected = createOrOverwriteFile(ChefSolo.DEFAULT_SOLO_PATH + "/roles/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString())); assertEquals(statementList.size(), 2); assertEquals(statementList.get(0), exec("{md} " + ChefSolo.DEFAULT_SOLO_PATH + "/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expected.render(OsFamily.UNIX)); }
public void testToJsonStringWithOnlyName() { Role role = Role.builder().name("foo").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"\",\"default_attributes\":{}," + "\"override_attributes\":{},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\",\"run_list\":[]}"); }
public void testCreateRolesIfNecessaryWithOneRoleAndCustomPath() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); RunList runlist = RunList.builder().recipe("bar").build(); Role role = Role.builder().name("foo").runlist(runlist).build(); ChefSolo solo = ChefSolo.builder().rolePath("/tmp/roles").defineRole(role).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expected = createOrOverwriteFile("/tmp/roles/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString())); assertEquals(statementList.size(), 2); assertEquals(statementList.get(0), exec("{md} /tmp/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expected.render(OsFamily.UNIX)); }
public void testToJsonStringWithOnlyName() { Role role = Role.builder().name("foo").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"\",\"default_attributes\":{}," + "\"override_attributes\":{},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\",\"run_list\":[]}"); }
public void testCreateRolesIfNecessaryWithOneRoleAndCustomPath() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); RunList runlist = RunList.builder().recipe("bar").build(); Role role = Role.builder().name("foo").runlist(runlist).build(); ChefSolo solo = ChefSolo.builder().rolePath("/tmp/roles").defineRole(role).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expected = createOrOverwriteFile("/tmp/roles/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString())); assertEquals(statementList.size(), 2); assertEquals(statementList.get(0), exec("{md} /tmp/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expected.render(OsFamily.UNIX)); }
public void testToJsonStringWithOverrideAttributes() { Role role = Role.builder().name("foo").jsonOverrideAttributes("{\"foo\":\"bar\"}").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"\",\"default_attributes\":{}," + "\"override_attributes\":{\"foo\":\"bar\"},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\"," + "\"run_list\":[]}"); }
@VisibleForTesting void createRolesIfNecessary(ImmutableList.Builder<Statement> statements) { // The roles directory must contain one file for each role definition if (roles.isPresent() && !roles.get().isEmpty()) { statements.add(exec("{md} " + rolePath)); for (Role role : roles.get()) { statements.add(createOrOverwriteFile(rolePath + "/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString()))); } } }
public Role build() { return new Role(name, Optional.fromNullable(description), Optional.fromNullable(jsonDefaultAttributes), Optional.fromNullable(jsonOverrideAttributes), Optional.fromNullable(runlist)); } }
public void testCreateRolesIfNecessaryWithOneRole() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); RunList runlist = RunList.builder().recipe("bar").build(); Role role = Role.builder().name("foo").runlist(runlist).build(); ChefSolo solo = ChefSolo.builder().defineRole(role).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expected = createOrOverwriteFile(ChefSolo.DEFAULT_SOLO_PATH + "/roles/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString())); assertEquals(statementList.size(), 2); assertEquals(statementList.get(0), exec("{md} " + ChefSolo.DEFAULT_SOLO_PATH + "/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expected.render(OsFamily.UNIX)); }
public void testToJsonStringWithDefaultAttributes() { Role role = Role.builder().name("foo").jsonDefaultAttributes("{\"foo\":\"bar\"}").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"\",\"default_attributes\":{\"foo\":\"bar\"}," + "\"override_attributes\":{},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\"," + "\"run_list\":[]}"); }
@VisibleForTesting void createRolesIfNecessary(ImmutableList.Builder<Statement> statements) { // The roles directory must contain one file for each role definition if (roles.isPresent() && !roles.get().isEmpty()) { statements.add(exec("{md} " + rolePath)); for (Role role : roles.get()) { statements.add(createOrOverwriteFile(rolePath + "/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString()))); } } }
public Role build() { return new Role(name, Optional.fromNullable(description), Optional.fromNullable(jsonDefaultAttributes), Optional.fromNullable(jsonOverrideAttributes), Optional.fromNullable(runlist)); } }
public void testCreateRolesIfNecessaryWithMultipleRoleAndCustomPath() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); Role roleFoo = Role.builder().name("foo").runlist(RunList.builder().recipe("foo").build()).build(); Role roleBar = Role.builder().name("bar").runlist(RunList.builder().recipe("bar").build()).build(); ChefSolo solo = ChefSolo.builder().rolePath("/tmp/roles").defineRole(roleFoo).defineRole(roleBar).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expectedFoo = createOrOverwriteFile("/tmp/roles/" + roleFoo.getName() + ".json", ImmutableSet.of(roleFoo.toJsonString())); Statement expectedBar = createOrOverwriteFile("/tmp/roles/" + roleBar.getName() + ".json", ImmutableSet.of(roleBar.toJsonString())); assertEquals(statementList.size(), 3); assertEquals(statementList.get(0), exec("{md} /tmp/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expectedFoo.render(OsFamily.UNIX)); assertEquals(statementList.get(2).render(OsFamily.UNIX), expectedBar.render(OsFamily.UNIX)); }
public void testToJsonStringWithDescription() { Role role = Role.builder().name("foo").description("Foo role").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"Foo role\",\"default_attributes\":{}," + "\"override_attributes\":{},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\",\"run_list\":[]}"); }
@VisibleForTesting void createRolesIfNecessary(ImmutableList.Builder<Statement> statements) { // The roles directory must contain one file for each role definition if (roles.isPresent() && !roles.get().isEmpty()) { statements.add(exec("{md} " + rolePath)); for (Role role : roles.get()) { statements.add(createOrOverwriteFile(rolePath + "/" + role.getName() + ".json", ImmutableSet.of(role.toJsonString()))); } } }
public Role build() { return new Role(name, Optional.fromNullable(description), Optional.fromNullable(jsonDefaultAttributes), Optional.fromNullable(jsonOverrideAttributes), Optional.fromNullable(runlist)); } }
public void testCreateRolesIfNecessaryWithMultipleRoleAndCustomPath() { ImmutableList.Builder<Statement> statements = ImmutableList.builder(); Role roleFoo = Role.builder().name("foo").runlist(RunList.builder().recipe("foo").build()).build(); Role roleBar = Role.builder().name("bar").runlist(RunList.builder().recipe("bar").build()).build(); ChefSolo solo = ChefSolo.builder().rolePath("/tmp/roles").defineRole(roleFoo).defineRole(roleBar).build(); solo.createRolesIfNecessary(statements); ImmutableList<Statement> statementList = statements.build(); Statement expectedFoo = createOrOverwriteFile("/tmp/roles/" + roleFoo.getName() + ".json", ImmutableSet.of(roleFoo.toJsonString())); Statement expectedBar = createOrOverwriteFile("/tmp/roles/" + roleBar.getName() + ".json", ImmutableSet.of(roleBar.toJsonString())); assertEquals(statementList.size(), 3); assertEquals(statementList.get(0), exec("{md} /tmp/roles")); assertEquals(statementList.get(1).render(OsFamily.UNIX), expectedFoo.render(OsFamily.UNIX)); assertEquals(statementList.get(2).render(OsFamily.UNIX), expectedBar.render(OsFamily.UNIX)); }
public void testToJsonStringWithDefaultAttributes() { Role role = Role.builder().name("foo").jsonDefaultAttributes("{\"foo\":\"bar\"}").build(); assertEquals(role.toJsonString(), "{\"name\": \"foo\",\"description\":\"\",\"default_attributes\":{\"foo\":\"bar\"}," + "\"override_attributes\":{},\"json_class\":\"Chef::Role\",\"chef_type\":\"role\"," + "\"run_list\":[]}"); }