@Test
  public void updateUpdatesCoinbaseAccount() {
    Result<Customer> customerResult = gateway.customer().create(new CustomerRequest());
    String customerId = customerResult.getTarget().getId();

    PaymentMethodRequest venmoRequest =
        new PaymentMethodRequest().customerId(customerId).paymentMethodNonce(Nonce.VenmoAccount);
    Result<? extends PaymentMethod> venmoResult = gateway.paymentMethod().create(venmoRequest);
    VenmoAccount venmoAccount = (VenmoAccount) venmoResult.getTarget();
    assertTrue(venmoAccount.isDefault());

    PaymentMethodRequest request =
        new PaymentMethodRequest().customerId(customerId).paymentMethodNonce(Nonce.Coinbase);
    Result<? extends PaymentMethod> paymentMethodResult = gateway.paymentMethod().create(request);

    assertTrue(paymentMethodResult.isSuccess());
    String token = paymentMethodResult.getTarget().getToken();

    PaymentMethodRequest updatePaymentMethodRequest =
        new PaymentMethodRequest().options().makeDefault(true).done();

    Result<? extends PaymentMethod> result =
        gateway.paymentMethod().update(token, updatePaymentMethodRequest);

    assertTrue(result.isSuccess());
    assertTrue(result.getTarget() instanceof CoinbaseAccount);
    CoinbaseAccount coinbaseAccount = (CoinbaseAccount) result.getTarget();
    assertTrue(coinbaseAccount.isDefault());
  }