public async Task can_update_a_checkout()
        {
            var requestInfo = @"""email""";

            SetupServerSingleResponse(CheckoutData.CheckoutWithRequestInfo(requestInfo));

            var updateCheckout = new UpdateCheckout
            {
                LocalPrice = new Money {
                    Amount = 200.00m, Currency = "USD"
                }
            };

            var update = await api.UpdateCheckoutAsync(CheckoutData.CheckoutModel.Id, updateCheckout);

            var truth = new Response <Checkout>
            {
                Data = CheckoutData.CheckoutModel
            };

            truth.Data.RequestedInfo.Add("email");

            truth.Should().BeEquivalentTo(update);

            server.ShouldHaveCalled($"https://api.commerce.coinbase.com/checkouts/{CheckoutData.CheckoutModel.Id}")
            .WithVerb(HttpMethod.Put);
        }
        public async Task can_update_checkout_with_empty_requestinfo()
        {
            var update = new UpdateCheckout();

            update.RequestedInfo.Clear();

            var checkout = await commerceApi.UpdateCheckoutAsync("6c7b12af-861b-48a5-b462-68f2a90f2ddb", update);

            checkout.Dump();
        }
        public async Task sending_checkout_updates_to_the_server_should_only_be_of_defined_values()
        {
            SetupServerSingleResponse(CheckoutData.Checkout);

            var updateCheckout = new UpdateCheckout
            {
                LocalPrice = new Money {
                    Amount = 200.00m, Currency = "USD"
                }
            };

            await api.UpdateCheckoutAsync(CheckoutData.CheckoutModel.Id, updateCheckout);

            //client should only send up only explicitly filled out fields.
            var onlyMinimalUpdateSentToServer = @"{""local_price"":{""amount"":200.00,""currency"":""USD""}}";

            server.CallLog.First().RequestBody.Should().Be(onlyMinimalUpdateSentToServer);
        }
Exemplo n.º 4
0
        public void should_seralize_requestedinfo_when_property_has_been_modified()
        {
            var update = new UpdateCheckout();

            update.ShouldSerializeRequestedInfo().Should().BeFalse();

            update.RequestedInfo.Add("hello");

            update.ShouldSerializeRequestedInfo().Should().BeTrue();

            update.RequestedInfo = null;

            update.ShouldSerializeRequestedInfo().Should().BeFalse();

            update.RequestedInfo.Add("world");
            update.RequestedInfo.Clear();

            update.ShouldSerializeRequestedInfo().Should().BeTrue();
        }
Exemplo n.º 5
0
 /// <summary>
 /// Update a checkout.
 /// </summary>
 /// <param name="checkoutId">The checkout id</param>
 /// <param name="checkout">The checkout to update</param>
 public virtual Task <Response <Checkout> > UpdateCheckoutAsync(string checkoutId, UpdateCheckout checkout, CancellationToken cancellationToken = default)
 {
     return(CheckoutEndpoint
            .AppendPathSegment(checkoutId)
            .PutJsonAsync(checkout, cancellationToken)
            .ReceiveJson <Response <Checkout> >());
 }