private function checkIDP(EntityDescriptor $ed)
 {
     $arr = $ed->getAllIdpSsoDescriptors();
     $this->assertEquals(1, count($arr));
     $idp = $arr[0];
     $this->assertEquals(1, count($idp->getKeyDescriptors()));
     $arr = $idp->getKeyDescriptors();
     $this->assertEquals(1, count($arr));
     $this->assertEquals('', $arr[0]->getUse());
     $cert = $arr[0]->getCertificate();
     $this->assertNotNull($cert);
     $this->assertGreaterThan(100, strlen($cert->getData()));
     $this->assertEquals(0, count($idp->findSingleLogoutServices()));
     $this->assertEquals(4, count($idp->findSingleSignOnServices()));
     $arr = $idp->findSingleSignOnServices(Bindings::SAML2_HTTP_POST);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_POST, $arr[0]->getBinding());
     $this->assertEquals('https://idp.testshib.org/idp/profile/SAML2/POST/SSO', $arr[0]->getLocation());
     $arr = $idp->findSingleSignOnServices(Bindings::SAML2_HTTP_REDIRECT);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_REDIRECT, $arr[0]->getBinding());
     $this->assertEquals('https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO', $arr[0]->getLocation());
 }
 private function checkIDP(EntityDescriptor $ed, $url)
 {
     $arr = $ed->getAllIdpSsoDescriptors();
     $this->assertEquals(1, count($arr));
     $idp = $arr[0];
     $this->assertEquals(2, count($idp->getKeyDescriptors()));
     $arr = $idp->findKeyDescriptors(KeyDescriptor::USE_SIGNING);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(KeyDescriptor::USE_SIGNING, $arr[0]->getUse());
     $cert = $arr[0]->getCertificate();
     $this->assertNotNull($cert);
     $this->assertGreaterThan(100, strlen($cert->getData()));
     $arr = $idp->findKeyDescriptors(KeyDescriptor::USE_ENCRYPTION);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(KeyDescriptor::USE_ENCRYPTION, $arr[0]->getUse());
     $cert = $arr[0]->getCertificate();
     $this->assertNotNull($cert);
     $this->assertGreaterThan(100, strlen($cert->getData()));
     $this->assertEquals(2, count($idp->findSingleLogoutServices()));
     $arr = $idp->findSingleLogoutServices(Bindings::SAML2_HTTP_REDIRECT);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_REDIRECT, $arr[0]->getBinding());
     $this->assertEquals($url, $arr[0]->getLocation());
     $arr = $idp->findSingleLogoutServices(Bindings::SAML2_HTTP_POST);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_POST, $arr[0]->getBinding());
     $this->assertEquals($url, $arr[0]->getLocation());
     $this->assertEquals(2, count($idp->findSingleSignOnServices()));
     $arr = $idp->findSingleLogoutServices(Bindings::SAML2_HTTP_POST);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_POST, $arr[0]->getBinding());
     $this->assertEquals($url, $arr[0]->getLocation());
     $arr = $idp->findSingleLogoutServices(Bindings::SAML2_HTTP_REDIRECT);
     $this->assertEquals(1, count($arr));
     $this->assertEquals(Bindings::SAML2_HTTP_REDIRECT, $arr[0]->getBinding());
     $this->assertEquals($url, $arr[0]->getLocation());
 }
 /**
  * @return \AerialShip\LightSaml\Security\X509Certificate
  */
 private function getCertificate()
 {
     $ed = new EntityDescriptor();
     $doc = new \DOMDocument();
     $doc->load(__DIR__ . '/../../../../../../../resources/sample/EntityDescriptor/idp2-ed.xml');
     $ed->loadFromXml($doc->firstChild);
     $arrIdp = $ed->getAllIdpSsoDescriptors();
     $idp = $arrIdp[0];
     $arrKeys = $idp->findKeyDescriptors('signing');
     $k = $arrKeys[0];
     $cert = $k->getCertificate();
     return $cert;
 }