@Test
public void shouldAllowSettingOfConfigAttributes() throws Exception {
ExecTask exec = new ExecTask();
exec.setConfigAttributes(m(ExecTask.COMMAND, "ls", ExecTask.ARGS, "-la", ExecTask.WORKING_DIR, "my_dir"));
assertThat(exec.command(), is("ls"));
assertThat(exec.getArgs(), is("-la"));
assertThat(exec.getArgListString(), is(""));
assertThat(exec.workingDirectory(), is("my_dir"));
exec.setConfigAttributes(m(ExecTask.COMMAND, null, ExecTask.ARGS, null, ExecTask.WORKING_DIR, null));
assertThat(exec.command(), is(nullValue()));
assertThat(exec.getArgs(), is(""));
assertThat(exec.workingDirectory(), is(nullValue()));
exec.setConfigAttributes(m(ExecTask.COMMAND, null, ExecTask.ARG_LIST_STRING, "-l\n-a\npavan's\\n working dir?", ExecTask.WORKING_DIR, null));
assertThat(exec.command(), is(nullValue()));
assertThat(exec.getArgListString(), is("-l\n-a\npavan's\\n working dir?"));
assertThat(exec.getArgList().size(), is(3));
assertThat(exec.getArgList().get(0), is(new Argument("-l")));
assertThat(exec.getArgList().get(1), is(new Argument("-a")));
assertThat(exec.getArgList().get(2), is(new Argument("pavan's\\n working dir?")));
assertThat(exec.workingDirectory(), is(nullValue()));
}