Describe("CancelTaskCommand", func() {
		var cancelTaskCommand cli.Command

		BeforeEach(func() {
			commandFactory := command_factory.NewTaskRunnerCommandFactory(fakeTaskRunner, terminalUI, fakeExitHandler)
			cancelTaskCommand = commandFactory.MakeCancelTaskCommand()
		})

		It("Cancels the given task", func() {
			taskInfo := task_examiner.TaskInfo{
				TaskGuid: "task-guid-1",
				State:    "COMPLETED",
			}
			fakeTaskExaminer.TaskStatusReturns(taskInfo, nil)
			fakeTaskRunner.CancelTaskReturns(nil)
			test_helpers.ExecuteCommandWithArgs(cancelTaskCommand, []string{"task-guid-1"})

			Expect(outputBuffer).To(test_helpers.Say(colors.Green("OK")))
		})

		It("returns error when fail to cancel the task", func() {
			taskInfo := task_examiner.TaskInfo{
				TaskGuid: "task-guid-1",
				State:    "COMPLETED",
			}
			fakeTaskExaminer.TaskStatusReturns(taskInfo, nil)
			fakeTaskRunner.CancelTaskReturns(errors.New("task in unknown state"))
			test_helpers.ExecuteCommandWithArgs(cancelTaskCommand, []string{"task-guid-1"})

			Expect(outputBuffer).To(test_helpers.Say("Error cancelling task-guid-1: " + "task in unknown state"))