public async Task On_Create_Should_Throw_FailedToCreateException_When_Exception_Received() { // Given: var todoItem = new Todo() { Id = 0, Name = "Water plants", Completed = false }; // And: var commandRepository = new Mock <ITodoCommandRepository>(); commandRepository .Setup(r => r.CreateTodoAsync(It.IsAny <Todo>())) .ThrowsAsync(new NullReferenceException("Problem with database!")); // And: var sut = new DefaultTodoService(commandRepository.Object, null); // When: var func = new Func <Task>(async() => { await sut.CreateTodoAsync(todoItem); }); // Then: var exception = await Assert.ThrowsAsync <FailedToCreateTodoException>(func); Assert.Equal("Problem with database!", exception.Message); }
public async Task On_Create_Should_Return_Todo_When_Successful() { // Given: var todoItem = new Todo() { Id = 0, Name = "Water plants", Completed = false }; // And: var commandRepository = new Mock <ITodoCommandRepository>(); commandRepository .Setup(r => r.CreateTodoAsync(It.IsAny <Todo>())) .ReturnsAsync(todoItem); // And: var sut = new DefaultTodoService(commandRepository.Object, null); // When: var result = await sut.CreateTodoAsync(todoItem); // Then: Assert.Equal("Water plants", result.Name); Assert.Equal(false, result.Completed); }