public async Task FizzBuzzController_ResultsWithValidModel_AwaitsLogger() { //arrange var sut = CreateSut(); sut.ModelState.Clear(); var isAwaited = false; UserInputLoggerMock .Setup(logger => logger.LogAsync(Convert.ToInt32(GeneratedMaxValue), GeneratedPageNumber)) .Returns(() => Task .Delay(TimeSpan.FromMilliseconds(100)) .ContinueWith(task => isAwaited = task.IsCompleted)); //act await sut.Results(new FizzBuzzViewModel { MaxValue = GeneratedMaxValue, PageNumber = GeneratedPageNumber }); //assert isAwaited.Should().BeTrue(); }
public void FizzBuzzController_ResultsWithLoggerThrowing_ThrowsSameException() { //arrange var exception = GenerateException(); UserInputLoggerMock .Setup(logger => logger.LogAsync(It.IsAny <int>(), It.IsAny <int>())) .Throws(exception); var sut = CreateSut(); //act Func <Task> act = () => sut.Results(new FizzBuzzViewModel { MaxValue = GeneratedMaxValue, PageNumber = GeneratedPageNumber }); //assert act .ShouldThrow <Exception>() .Which.Should().BeSameAs(exception); }