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(); }
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); }); }