public void Repricing_InvalidTickets_ExceptionThrown() { var order = new Order(); var callDelegate = new TestDelegate(() => _pricingManager.RepricingAsync(order).Wait()); Assert.Throws<AggregateException>(callDelegate); Assert.Throws<AggregateException>(callDelegate).InnerExceptions.Any(exception => exception is TicketNotValidException); }
public void Repricing_DeltaHasNoChanges_MessageWithNoChanges() { var testOrder = new Order() {Price = 1000}; _aviaService.IsTicketValidAsync(Arg.Any<string>()).Returns(info => Task.FromResult(true)); _dpService.IsTicketValidAsync(Arg.Any<string>()).Returns(info => Task.FromResult(true)); _aviaService.UpdateTicketPriceAsync(Arg.Any<string>()).Returns(info => new AviaPricesInfo {Price = testOrder.Price * 0.4}); _dpService.UpdateBookingPriceAsync(Arg.Any<string>()).Returns(info => new HotelPricesInfo { Price = testOrder.Price * 0.6 }); var repricingTask = _pricingManager.RepricingAsync(testOrder); repricingTask.Wait(); var repricingInfo = repricingTask.Result; Assert.That(repricingInfo.Result, Is.EqualTo(StatusEnum.Confirmed)); }
public void Repricing_DeltaHasChanged_CriteriaChecked() { var testOrder = new Order() { Price = 1000 }; var testCriteria = new FakeCriteria(); _aviaService.IsTicketValidAsync(Arg.Any<string>()).Returns(info => Task.FromResult(true)); _dpService.IsTicketValidAsync(Arg.Any<string>()).Returns(info => Task.FromResult(true)); _aviaService.UpdateTicketPriceAsync(Arg.Any<string>()).Returns(info => new AviaPricesInfo { Price = testOrder.Price * 0.1 }); _dpService.UpdateBookingPriceAsync(Arg.Any<string>()).Returns(info => new HotelPricesInfo { Price = testOrder.Price * 0.6 }); _criteriaFactory.GetCriterias(Arg.Any<IOrder>()).Returns(info => new List<ICriteria> {testCriteria}); _decisionFactory.GetDecisions(Arg.Any<ICriteria>()).Returns(info => new List<IDecision>()); var repricingTask = _pricingManager.RepricingAsync(testOrder); repricingTask.Wait(); var repricingInfo = repricingTask.Result; Assert.That(repricingInfo.Result, Is.EqualTo(StatusEnum.Changed)); Assert.AreEqual(testCriteria.CheckCount, 1); }