public async Task GetFeePercentage_Should_Throw_Exception_When_HttpHandler_Fails() { var httpHandlerMock = new Mock <IHttpHandler>(); httpHandlerMock .Setup(h => h.GetAsyncAsString(It.IsAny <string>())) .Throws(new Exception()); var feePercentageService = new FeePercentageService(httpHandlerMock.Object, ""); await Assert.ThrowsAsync <FeePercentageServiceException>(async() => { var actual = await feePercentageService.GetFeePercentage(); }); }
public async Task GetFeePercentage_Should_Return_Valid_Value() { var expected = 0.01m; var httpHandlerMock = new Mock <IHttpHandler>(); httpHandlerMock .Setup(h => h.GetAsyncAsString(It.IsAny <string>())) .ReturnsAsync("0.01"); var feePercentageService = new FeePercentageService(httpHandlerMock.Object, ""); var actual = await feePercentageService.GetFeePercentage(); 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_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); }); }