Example #1
0
        public async Task GetAsync_GivenValidRequestParameters_ReturnsResponseAsync(GetTaxRequest request)
        {
            GetTax actualQuery = null;

            var expectedQuery = new GetTax(request.Municipality, request.Date);

            var taxMock = new Tax
            {
                Municipality = request.Municipality,
                PeriodType   = Enums.PeriodType.Daily,
                PeriodStart  = DateTime.Parse(request.Date),
                PeriodEnd    = DateTime.Parse(request.Date),
                Result       = 0.4m
            };

            var expectedResponse = new GetTaxResponse
            {
                Municipality = request.Municipality,
                PeriodType   = Enums.PeriodType.Daily,
                PeriodStart  = DateTime.Parse(request.Date),
                PeriodEnd    = DateTime.Parse(request.Date),
                Result       = 0.5m
            };

            _mediatorMock
            .Setup(s => s.Send(It.IsAny <GetTax>(), It.IsAny <CancellationToken>()))
            .Callback <IRequest <Option <Tax> >, CancellationToken>((query, ct) => actualQuery = (GetTax)query)
            .ReturnsAsync(taxMock);

            var response = await _controller.GetAsync(request);

            response.Result.Should().BeOfType <OkObjectResult>();
            _mediatorMock.Verify(s => s.Send(It.IsAny <GetTax>(), It.IsAny <CancellationToken>()), Times.Once);
            actualQuery.Should().Be(expectedQuery);
        }
        public async Task Handle_GivenTaxWasNotFound_ReturnsNoneAsync()
        {
            var vilnius = new Tax
            {
                Municipality = "Vilnius",
                PeriodType   = Enums.PeriodType.Monthly,
                PeriodStart  = DateTime.Parse("2020-11-08"),
                PeriodEnd    = DateTime.Parse("2020-11-08"),
                Result       = 0.2m
            };
            var varena = new Tax
            {
                Municipality = "Varena",
                PeriodType   = Enums.PeriodType.Monthly,
                PeriodStart  = DateTime.Parse("2020-11-08"),
                PeriodEnd    = DateTime.Parse("2020-11-08"),
                Result       = 0.2m
            };

            await _dbContext.AddRangeAsync(vilnius, varena);

            await _dbContext.SaveChangesAsync();

            var request = new GetTax("Kaunas", "2020-11-08");

            var result = await _handler.Handle(request, default);

            result.ShouldBeNone();
        }
Example #3
0
        public static void Main()
        {
            try
            {
                string summary;
                #region Report Tax
                CustomerOrder order = new CustomerOrder();
                order.AddressLine1 = "631 LUPINE DR";
                order.City         = "FORT COLLINS";
                order.Country      = "US";
                order.State        = "CO";
                order.PostalCode   = "80524";
                order.InProduction = false;
                order.IsCommit     = false;
                order.OCN          = "041025304MS";
                order.Quantity     = 1;
                order.TotalAmount  = 66.98m;
                order.TotalTax     = 4.96m;

                GetTaxResult  getTaxResult  = GetTax.Execute(order, out summary);
                PostTaxResult postTaxResult = PostTax.Execute(order, getTaxResult, out summary);
                #endregion

                #region same day cancellation or when shipment charges is filed
                CustomerOrder cancel = new CustomerOrder();
                cancel.InProduction = false;
                cancel.OCN          = "041025304MS";
                CancelTaxResult cancelTaxResult = CancelTax.Execute(cancel.InProduction, cancel.OCN, out summary);
                #endregion

                #region harware refund
                CustomerOrder refund = new CustomerOrder();
                refund.AddressLine1 = "631 LUPINE DR";
                refund.City         = "FORT COLLINS";
                refund.Country      = "US";
                refund.State        = "CO";
                refund.PostalCode   = "80524";
                refund.InProduction = false;
                refund.IsCommit     = false;
                refund.OCN          = "041025304MS";
                refund.Quantity     = 1;
                refund.TotalAmount  = 54.99m; // hardware cost
                refund.TotalTax     = 4.06m;  // tax portion of hardware cost

                AdjustTaxResult adjustTaxResult = AdjustTaxTest.Execute(refund, out summary);
                #endregion
            }
            catch (Exception ex)
            {
                Console.WriteLine("An Exception Occured: " + ex.Message);
            }
            finally
            {
                Console.WriteLine("Done");
                Console.ReadLine();
            }
        }
        public async Task <ActionResult <IEnumerable <GetTaxResponse> > > GetAsync([FromQuery] GetTaxRequest request)
        {
            var query = new GetTax(request.Municipality, request.Date);

            var result = await _mediator.Send(query);

            var response = result.Map(s => s.ToResponse());

            return(Ok(response));
        }
        public async Task Handle_GivenTaxWasFound_ReturnsProjectAsync()
        {
            var vilnius = new Tax
            {
                Municipality = "Vilnius",
                PeriodType   = Enums.PeriodType.Monthly,
                PeriodStart  = DateTime.Parse("2020-11-08"),
                PeriodEnd    = DateTime.Parse("2020-11-08"),
                Result       = 0.2m
            };
            var varena = new Tax
            {
                Municipality = "Varena",
                PeriodType   = Enums.PeriodType.Monthly,
                PeriodStart  = DateTime.Parse("2020-11-08"),
                PeriodEnd    = DateTime.Parse("2020-11-08"),
                Result       = 0.2m
            };

            await _dbContext.AddRangeAsync(vilnius, varena);

            await _dbContext.SaveChangesAsync();

            var request = new GetTax("Vilnius", "2020-11-08");

            var result = await _handler.Handle(request, default);

            result.ShouldBeSome(project =>
            {
                var expectation = new Tax
                {
                    Municipality = "Vilnius",
                    PeriodType   = Enums.PeriodType.Monthly,
                    PeriodStart  = DateTime.Parse("2020-11-08"),
                    PeriodEnd    = DateTime.Parse("2020-11-08"),
                    Result       = 0.2m
                };

                project.Should().BeEquivalentTo(expectation);
            });
        }