/**
  * Make an successful call
  * Create a transaction then do the reserve call
  */
 public function testSuccessfulApiCall()
 {
     if (is_null($this->config)) {
         $this->markTestSkipped('Config is not set, please set up the required environment variables');
         return false;
     }
     $userId = "REGISTED:" . hash('md5', microtime());
     $billingRecipient = $this->faker->name;
     $shippingRecipient = $this->faker->name;
     $registerRequest = new RegisterUserRequest($this->config);
     $registerRequest->setUserID($userId)->setUserType(\Upg\Library\User\Type::USER_TYPE_PRIVATE)->setUserRiskClass(RiskClass::RISK_CLASS_DEFAULT)->setUserData($this->getUser())->setBillingAddress($this->getAddress())->setBillingRecipient($billingRecipient)->setShippingAddress($this->getAddress())->setShippingRecipient($shippingRecipient)->setLocale(Codes::LOCALE_EN);
     $registerUserApi = new RegisterUserApi($this->config, $registerRequest);
     $registerUserResult = $registerUserApi->sendRequest();
     $this->assertEquals(0, $registerUserResult->getData('resultCode'));
     $this->assertEmpty($registerUserResult->getData('message'));
     $this->assertNotEmpty($registerUserResult->getData('salt'));
     $registerUserPaymentInstrumentRequest = new RegisterUserPaymentInstrumentRequest($this->config);
     $registerUserPaymentInstrumentRequest->setUserID($userId)->setPaymentInstrument($this->getPaymentInstrument());
     $registerUserPaymentInstrument = new RegisterUserPaymentInstrumentApi($this->config, $registerUserPaymentInstrumentRequest);
     $registerUserPaymentInstrumentResult = $registerUserPaymentInstrument->sendRequest();
     $paymentId = $registerUserPaymentInstrumentResult->getData('paymentInstrumentID');
     $deleteUserPaymentInstrumentRequest = new DeleteUserPaymentInstrumentRequest($this->config);
     $deleteUserPaymentInstrumentRequest->setPaymentInstrumentID($paymentId);
     $deleteUserPaymentInstrumentApi = new DeleteUserPaymentInstrumentApi($this->config, $deleteUserPaymentInstrumentRequest);
     $result = $deleteUserPaymentInstrumentApi->sendRequest();
     $this->assertEquals(0, $result->getData('resultCode'));
     $this->assertEmpty($result->getData('message'));
     $this->assertNotEmpty($result->getData('salt'));
 }
 public function testGetUrl()
 {
     $request = new DeleteUserPaymentInstrument($this->config);
     $api = new DeleteUserPaymentInstrumentApi($this->config, $request);
     $this->assertEquals('http://www.something.com/deleteUserPaymentInstrument', $api->getUrl());
 }