public void When_Calculate(
            decimal taxRate,
            decimal taxableAmount,
            decimal expectedTaxAmount)
        {
            // Arrange

            var taxCalculate =
                new TaxCalculate();

            var taxCalculateOptions =
                new TaxCalculateOptions
            {
                TaxRate       = taxRate,
                TaxableAmount = taxableAmount
            };

            // Act

            var taxAmount =
                taxCalculate.Calculate(
                    taxCalculateOptions);

            // Assert

            Assert.Equal(expectedTaxAmount, taxAmount);
        }
Пример #2
0
        public IActionResult Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] TaxCalculateOptions taxCalculateOptions,
            ILogger log)
        {
            log.LogInformation("C# HTTP trigger function processed a request.");

            var taxAmount =
                _taxCalculate.Calculate(
                    taxCalculateOptions);

            return(new OkObjectResult($"The tax amount is {taxAmount:C2}."));
        }
Пример #3
0
        public decimal Calculate(
            TaxCalculateOptions taxCalculateOptions)
        {
            if (taxCalculateOptions.TaxableAmount < 0)
            {
                throw new ArgumentOutOfRangeException(nameof(taxCalculateOptions.TaxableAmount), "'taxableAmount' must be greater than 0.");
            }

            var taxAmount =
                taxCalculateOptions.TaxableAmount * taxCalculateOptions.TaxRate;

            // This rounds the result to two decimal places, e.g. 6.66666666 becomes 6.67

            return(decimal.Round(taxAmount, 2, MidpointRounding.AwayFromZero));
        }
        public void When_Calculate(
            decimal taxRate,
            decimal taxableAmount,
            decimal expectedTaxAmount)
        {
            // Arrange

            var taxCalculate =
                new TaxCalculate();

            var taxCalculateOptions =
                new TaxCalculateOptions
            {
                TaxRate       = taxRate,
                TaxableAmount = taxableAmount
            };


            var taxCalculateHttpTrigger =
                new TaxCalculateHttpTrigger(
                    taxCalculate);

            // Act

            var result =
                taxCalculateHttpTrigger.Run(
                    taxCalculateOptions,
                    _logger);

            // Assert

            Assert.IsType <OkObjectResult>(result);

            var okObjectResult =
                (OkObjectResult)result;

            Assert.Equal($"The tax amount is {expectedTaxAmount:C2}.", okObjectResult.Value);
        }