public void CancelsPurchaseApplication() { var request = BuildRequest(); commandHandler .Setup(x => x.Cancel(It.IsAny <CancelPurchaseApplicationCommand>())) .Returns(PurchaseApplicationBuilder.Build()); var response = controller.Cancel(request) as StatusCodeResult; response.StatusCode.Should().Be(StatusCodes.Status200OK); commandHandler .Verify(x => x.Cancel(It.Is <CancelPurchaseApplicationCommand>(y => y.PurchaseApplicationId == Id.Create(request.PurchaseApplicationId).IfFail(() => null) && y.RejectionReason == RejectionReason.Create(request.RejectionReason).IfFail(() => null))), Times.Once); }
public void DoesNotCancelPurchaseApplicationIfIsAlreadyCancelled() { purchaseApplicationRepository .Setup(x => x.SearchBy(It.IsAny <Id>())) .Returns(PurchaseApplicationBuilder.Build(isRejected: true)); timeService .Setup(x => x.UtcNow()) .Returns(new DateTime(2020, 10, 10)); var cancelledPurchaseApplication = commandHandler.Cancel(BuildCancelPurchaseApplicationCommand()); cancelledPurchaseApplication.IsLeft.Should().BeTrue(); cancelledPurchaseApplication.IfLeft(error => error.Should().Be(CanaryDeliveries.PurchaseApplication.Domain.Cancel.Error.PurchaseApplicationIsAlreadyRejected)); purchaseApplicationRepository .Verify(x => x.Update(It.IsAny <CanaryDeliveries.PurchaseApplication.Domain.PurchaseApplication>()), Times.Never); }
public void CancelsPurchaseApplication() { var command = BuildCancelPurchaseApplicationCommand(); var purchaseApplication = PurchaseApplicationBuilder.Build(id: command.PurchaseApplicationId.State.Value); purchaseApplicationRepository .Setup(x => x.SearchBy(command.PurchaseApplicationId)) .Returns(purchaseApplication); var utcNow = new DateTime(2020, 10, 10); timeService .Setup(x => x.UtcNow()) .Returns(utcNow); var cancelledPurchaseApplication = commandHandler.Cancel(command); cancelledPurchaseApplication.IsRight.Should().BeTrue(); purchaseApplicationRepository .Verify(x => x.Update(It.Is <CanaryDeliveries.PurchaseApplication.Domain.PurchaseApplication>(y => y.Id == purchaseApplication.Id && y.Rejection.IsSome && y.State == State.Rejected)), Times.Once); }
public void CreatesPurchaseApplication() { var request = BuildPurchaseApplicationRequest(); createPurchaseApplicationCommandHandler .Setup(x => x.Create(It.IsAny <CreatePurchaseApplicationCommand>())) .Returns(() => PurchaseApplicationBuilder.Build()); var response = controller.Create(request) as StatusCodeResult; response.StatusCode.Should().Be(StatusCodes.Status200OK); createPurchaseApplicationCommandHandler .Verify(x => x.Create(It.Is <CreatePurchaseApplicationCommand>(y => y.Products.Count == request.Products.Count && y.Products.First().Link == Link.Create(request.Products.First().Link).IfFail(() => null) && y.Products.First().Units == Units.Create(request.Products.First().Units).IfFail(() => null) && y.Products.First().AdditionalInformation == AdditionalInformation.Create(request.Products.First().AdditionalInformation).IfFail(() => null) && y.Products.First().PromotionCode == PromotionCode.Create(request.Products.First().PromotionCode).IfFail(() => null) && y.ClientProp.Email == Email.Create(request.Client.Email).IfFail(() => null) && y.ClientProp.PhoneNumber == PhoneNumber.Create(request.Client.PhoneNumber).IfFail(() => null) && y.ClientProp.Name == Name.Create(request.Client.Name).IfFail(() => null) && y.AdditionalInformation == AdditionalInformation.Create(request.AdditionalInformation).IfFail(() => null))), Times.Once); }