@Test public void getByNameFailsForUnknownTask() { try { container.getByName("unknown"); fail(); } catch (UnknownTaskException e) { assertThat(e.getMessage(), equalTo("Task with name 'unknown' not found in <project>.")); } }
@Test public void addsTaskWithMap() { final Map<String, ?> options = GUtil.map("option", "value"); final Task task = task("task"); context.checking( new Expectations() { { one(taskFactory).createTask(project, options); will(returnValue(task)); } }); assertThat(container.add(options), sameInstance(task)); assertThat(container.getByName("task"), sameInstance(task)); }
@Test public void replacesTaskWithName() { final Map<String, ?> options = GUtil.map(Task.TASK_NAME, "task"); final Task task = task("task"); context.checking( new Expectations() { { one(taskFactory).createTask(project, options); will(returnValue(task)); } }); assertThat(container.replace("task"), sameInstance(task)); assertThat(container.getByName("task"), sameInstance(task)); }
@Test public void canReplaceDuplicateTask() { addTask("task"); final Task newTask = task("task"); context.checking( new Expectations() { { one(taskFactory).createTask(project, GUtil.map(Task.TASK_NAME, "task")); will(returnValue(newTask)); } }); container.replace("task"); assertThat(container.getByName("task"), sameInstance(newTask)); }
@Test public void cannotAddDuplicateTask() { final Task task = addTask("task"); context.checking( new Expectations() { { one(taskFactory).createTask(project, GUtil.map(Task.TASK_NAME, "task")); will(returnValue(task("task"))); } }); try { container.add("task"); fail(); } catch (InvalidUserDataException e) { assertThat( e.getMessage(), equalTo("Cannot add [task2] as a task with that name already exists.")); } assertThat(container.getByName("task"), sameInstance(task)); }