Exemple #1
0
        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);
        }
Exemple #3
0
        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);
            });
        }