@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 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 canGetTaskByPath() { Task task = addTask("task"); expectTaskLookupInOtherProject(":a:b:c", "task", task); assertThat(container.getByPath(":a:b:c:task"), sameInstance(task)); }
@Test public void canFindTaskByAbsolutePath() { Task task = task("task"); expectTaskLookupInOtherProject(":", "task", task); assertThat(container.findByPath(":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 getByPathFailsForUnknownTask() { try { container.getByPath("unknown"); fail(); } catch (UnknownTaskException e) { assertThat(e.getMessage(), equalTo("Task with path 'unknown' not found in <project>.")); } }
@Test public void findByPathReturnsNullForUnknownProject() { context.checking( new Expectations() { { allowing(project).findProject(":unknown"); will(returnValue(null)); } }); assertThat(container.findByPath(":unknown:task"), nullValue()); }
private Task addTask(String name) { final Task task = task(name); final Map<String, ?> options = GUtil.map(Task.TASK_NAME, name); context.checking( new Expectations() { { one(taskFactory).createTask(project, options); will(returnValue(task)); } }); container.add(name); return task; }
@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)); }
@Test public void addsTaskWithNameAndConfigureClosure() { final Closure action = HelperUtil.toClosure("{ description = 'description' }"); 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)); one(task).configure(action); will(returnValue(task)); } }); assertThat(container.add("task", action), sameInstance(task)); }
@Test public void resolveLocatesTaskByPath() { Task task = addTask("task"); expectTaskLookupInOtherProject(":", "task", task); assertThat(container.resolveTask(new StringBuilder(":task")), sameInstance(task)); }
@Test public void resolveLocatesTaskByName() { Task task = addTask("1"); assertThat(container.resolveTask(1), sameInstance(task)); }
@Test public void canGetTaskByName() { Task task = addTask("task"); assertThat(container.getByPath("task"), sameInstance(task)); }
@Test public void findByPathReturnsNullForUnknownTask() { expectTaskLookupInOtherProject(":other", "task", null); assertThat(container.findByPath(":other:task"), nullValue()); }