public async Task UpdateTaskAsync_TaskExists_TaskUpdated() { IWorkTask taskToUpdate = A.Fake <IWorkTask>(); A.CallTo(() => taskToUpdate.Description).Returns("some-description"); A.CallTo(() => taskToUpdate.ID).Returns("some-id"); ITasksGroup tasksGroup = A.Fake <ITasksGroup>(); OperationResult <IWorkTask> getTaskResult = new OperationResult <IWorkTask>(true, taskToUpdate); A.CallTo(() => tasksGroup.GetTask(A <string> .Ignored)).Returns(getTaskResult); IDbRepository <ITasksGroup> dbRepository = A.Fake <IDbRepository <ITasksGroup> >(); A.CallTo(() => dbRepository.ListAsync()).Returns(new List <ITasksGroup>() { tasksGroup }); TasksGroupService tasksGroupService = new TasksGroupService(dbRepository, mTasksGroupFactory, NullLogger <TasksGroupService> .Instance); await tasksGroupService.UpdateTaskAsync( new WorkTaskResource { TaskId = taskToUpdate.ID, Description = taskToUpdate.Description }).ConfigureAwait(false); A.CallTo(() => dbRepository.UpdateAsync(tasksGroup)).MustHaveHappenedOnceExactly(); }
public async Task UpdateTaskAsync_TaskExists_SuccessResponseReturned() { IWorkTask taskToUpdate = A.Fake <IWorkTask>(); A.CallTo(() => taskToUpdate.Description).Returns("some-description"); A.CallTo(() => taskToUpdate.ID).Returns("some-id"); ITasksGroup tasksGroup = A.Fake <ITasksGroup>(); OperationResult <IWorkTask> getTaskResult = new OperationResult <IWorkTask>(true, taskToUpdate); A.CallTo(() => tasksGroup.GetTask(A <string> .Ignored)).Returns(getTaskResult); IDbRepository <ITasksGroup> dbRepository = A.Fake <IDbRepository <ITasksGroup> >(); A.CallTo(() => dbRepository.ListAsync()).Returns(new List <ITasksGroup>() { tasksGroup }); TasksGroupService tasksGroupService = new TasksGroupService(dbRepository, mTasksGroupFactory, NullLogger <TasksGroupService> .Instance); IResponse <IWorkTask> response = await tasksGroupService.UpdateTaskAsync( new WorkTaskResource { TaskId = taskToUpdate.ID, Description = taskToUpdate.Description }).ConfigureAwait(false); Assert.True(response.IsSuccess); Assert.Equal(taskToUpdate, response.ResponseObject); }