public async Task On_GetAllTodos_Should_Return_All_Todos() { // Given: var todos = new List <Todo>() { new Todo() { Id = 0, Name = "Water plants", Completed = false }, new Todo() { Id = 1, Name = "Wash dishes", Completed = true } }; // And: var queryRepository = new Mock <ITodoQueryRepository>(); queryRepository .Setup(r => r.GetAllTodosAsync()) .ReturnsAsync(todos); // And: var sut = new DefaultTodoService(null, queryRepository.Object); // When: var result = await sut.GetAllTodosAsync(); // Then: Assert.Equal(2, result.Count); }
public async Task On_GetAllTodos_Should_Throw_FailedToGetAllTodosException_When_Exception_Received() { // Given: var queryRepository = new Mock <ITodoQueryRepository>(); queryRepository .Setup(r => r.GetAllTodosAsync()) .ThrowsAsync(new NullReferenceException("Problems with database!")); // And: var sut = new DefaultTodoService(null, queryRepository.Object); // When: var func = new Func <Task>(async() => { await sut.GetAllTodosAsync(); }); // Then: var result = await Assert.ThrowsAsync <FailedToGetAllTodosException>(func); Assert.Equal("Problems with database!", result.Message); }