public async Task Calculate_Should_Throw() { // Arrange var equationValidatorMock = CreateEquationValidatorMock(); var loggerMock = CreateLoggerMock <ExternalLibraryCalculator>(); ICalculator calculator = new ExternalLibraryCalculator( equationValidatorMock.Object, loggerMock.Object); // Act & Assert await Assert.ThrowsAsync <ArgumentNullException>(() => calculator.CalculateAsync(null, CancellationToken.None)); }
public async Task Calculate_Should_Succeed(string equation, decimal expected) { // Arrange var equationValidatorMock = CreateEquationValidatorMock(); var loggerMock = CreateLoggerMock <ExternalLibraryCalculator>(); ICalculator calculator = new ExternalLibraryCalculator( equationValidatorMock.Object, loggerMock.Object); // Act var result = await calculator.CalculateAsync(equation, CancellationToken.None); // Assert result.Should().Be(expected); equationValidatorMock.Verify(x => x.EnsureEquationIsValid(It.IsAny <string>()), Times.Once); }