public void PaymentRequestUpdateResultInitsWithNoArgs() { var paymentRequestUpdateResult = new PaymentRequestUpdateResult(); Assert.NotNull(paymentRequestUpdateResult); Assert.IsType <PaymentRequestUpdateResult>(paymentRequestUpdateResult); }
private async Task <PaymentRequestUpdateResult> ProcessShippingUpdate(PaymentRequestUpdate paymentRequestUpdate, ShippingUpdateKind updateKind, CancellationToken token = default(CancellationToken)) { var catalogItem = await this.catalogService.GetItemByIdAsync(Guid.Parse(paymentRequestUpdate.Id)); if (catalogItem == null) { throw new ArgumentException("Invalid cart identifier within payment request provided."); } var result = new PaymentRequestUpdateResult(paymentRequestUpdate.Details); if (ShippingUpdateKind.Both.Equals(updateKind) || ShippingUpdateKind.Address.Equals(updateKind)) { result.Details.ShippingOptions = (await this.shippingService.GetShippingOptionsAsync(catalogItem, paymentRequestUpdate.ShippingAddress)).ToList(); } if (ShippingUpdateKind.Both.Equals(updateKind) || ShippingUpdateKind.Options.Equals(updateKind)) { foreach (var shippingOption in result.Details.ShippingOptions) { shippingOption.Selected = shippingOption.Id.Equals(paymentRequestUpdate.ShippingOption, StringComparison.OrdinalIgnoreCase); } } if (result.Details.ShippingOptions.Count(option => option.Selected.HasValue && option.Selected.Value) != 1) { throw new ArgumentException("Expected exactly zero or one selected shipping option."); } // update payment details after shipping changed await this.shippingService.UpdatePaymentDetailsAsync(result.Details, paymentRequestUpdate.ShippingAddress, catalogItem); return(result); }
public void PaymentRequestUpdateResultInits() { var details = new PaymentDetails(new PaymentItem(), new List <PaymentItem>(), new List <PaymentShippingOption>(), new List <PaymentDetailsModifier>(), "uh-oh"); var paymentRequestUpdateResult = new PaymentRequestUpdateResult(details); Assert.NotNull(paymentRequestUpdateResult); Assert.IsType <PaymentRequestUpdateResult>(paymentRequestUpdateResult); Assert.Equal(details, paymentRequestUpdateResult.Details); }