public async Task Execute_Should_Return_Correct_Value_When_Given_Correct_Values(decimal initialValue, int months, decimal mockedFee, decimal expected) { var feePercentageServiceMock = new Mock <IFeePercentageService>(); feePercentageServiceMock.Setup(f => f.GetFeePercentage()).ReturnsAsync(mockedFee); var usecase = new CalculateCompositeFeeUsecase(feePercentageServiceMock.Object); var actual = await usecase.Execute(initialValue, months); Assert.Equal(expected, actual); }
public async Task Execute_Should_Return_Valid_Value(decimal initialValue, int months, decimal expected) { var hostIp = Environment.GetEnvironmentVariable(EnvironmentVariables.HostIp); var httpClient = new HttpClient(); var httpHandler = new HttpClientHandler(httpClient); var feePercentageService = new FeePercentageService( httpHandler, String.Format(FeePercentageService.UrlEndpointFormat, hostIp) ); var calculateCompositeFeeUsecase = new CalculateCompositeFeeUsecase(feePercentageService); var actual = await calculateCompositeFeeUsecase.Execute(initialValue, months); Assert.Equal(expected, actual); }
public async Task Execute_Should_Throw_Exception_When_Given_Too_Small_Value() { var mockedFee = 0.01m; var initialValue = -decimal.MaxValue; var months = 5; var feePercentageServiceMock = new Mock <IFeePercentageService>(); feePercentageServiceMock.Setup(f => f.GetFeePercentage()).ReturnsAsync(mockedFee); var usecase = new CalculateCompositeFeeUsecase(feePercentageServiceMock.Object); await Assert.ThrowsAsync <CalculateCompositeFeeUsecaseException>(async() => { var actual = await usecase.Execute(initialValue, months); }); }
public async Task Execute_Should_Return_Zero_When_Months_Value_Is_Negative() { var hostIp = Environment.GetEnvironmentVariable(EnvironmentVariables.HostIp); var httpClient = new HttpClient(); var httpHandler = new HttpClientHandler(httpClient); var feePercentageService = new FeePercentageService( httpHandler, String.Format(FeePercentageService.UrlEndpointFormat, hostIp) ); var calculateCompositeFeeUsecase = new CalculateCompositeFeeUsecase(feePercentageService); var initialValue = 1; var months = -Int32.MaxValue; var expected = 0; var actual = await calculateCompositeFeeUsecase.Execute(initialValue, months); Assert.Equal(expected, actual); }
public async Task Execute_Should_Throw_Exception_When_InitialValue_Is_Too_Small() { var hostIp = Environment.GetEnvironmentVariable(EnvironmentVariables.HostIp); var httpClient = new HttpClient(); var httpHandler = new HttpClientHandler(httpClient); var feePercentageService = new FeePercentageService( httpHandler, String.Format(FeePercentageService.UrlEndpointFormat, hostIp) ); var calculateCompositeFeeUsecase = new CalculateCompositeFeeUsecase(feePercentageService); var initialValue = -Decimal.MaxValue; var months = 1; await Assert.ThrowsAsync <CalculateCompositeFeeUsecaseException>(async() => { await calculateCompositeFeeUsecase.Execute(initialValue, months); }); }