Inheritance: extends IPPCredential
 /**
  * @test
  */
 public function testHeadersAddedForSOAP()
 {
     $options = array('config' => array('mode' => 'sandbox'), 'serviceName' => 'AdaptivePayments', 'apiMethod' => 'ConvertCurrency');
     $req = new PPRequest(new StdClass(), 'SOAP');
     $handler = new PPCertificateAuthHandler();
     // Test that no headers are added if no credential is passed
     $httpConfig = new PPHttpConfig();
     $handler->handle($httpConfig, $req, $options);
     $this->assertEquals('', $req->getBindingInfo('securityHeader'));
     // Test that the 3 token SOAP headers are added for first party API calls
     $req = new PPRequest(new StdClass(), 'SOAP');
     $req->setCredential(new PPCertificateCredential('user', 'pass', 'cacert.pem'));
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ebl:Username>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Password>', $req->getBindingInfo('securityHeader'));
     $this->assertArrayHasKey(CURLOPT_SSLCERT, $httpConfig->getCurlOptions());
     // Test addition of 'subject' SOAP header for subject based third party auth
     $req = new PPRequest(new StdClass(), 'SOAP');
     $cred = new PPCertificateCredential('user', 'pass', 'cacert.pem');
     $cred->setThirdPartyAuthorization(new PPSubjectAuthorization('*****@*****.**'));
     $req->setCredential($cred);
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ebl:Username>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Password>', $req->getBindingInfo('securityHeader'));
     $this->assertContains('<ebl:Subject>', $req->getBindingInfo('securityHeader'));
     $this->assertArrayHasKey(CURLOPT_SSLCERT, $httpConfig->getCurlOptions());
     // Test that no auth related HTTP headers (username, password, sign?) are
     // added for token based third party auth
     $req = new PPRequest(new StdClass(), 'SOAP');
     $req->setCredential(new PPCertificateCredential('user', 'pass', 'cacert.pem'));
     $req->getCredential()->setThirdPartyAuthorization(new PPTokenAuthorization('token', 'tokenSecret'));
     $handler->handle($httpConfig, $req, $options);
     $this->assertContains('<ns:RequesterCredentials/>', $req->getBindingInfo('securityHeader'));
     $this->assertEquals(0, count($httpConfig->getHeaders()));
     $this->assertArrayHasKey(CURLOPT_SSLCERT, $httpConfig->getCurlOptions());
 }
 public function testGetApplicationId()
 {
     $this->assertEquals('APP-80W284485P519543T', $this->credential->getApplicationId());
 }