/**
  * @param LogoutRequestBuilder $builder
  * @param ServiceInfo $serviceInfo
  * @param SamlSpInfo $samlInfo
  * @return LogoutRequest
  */
 protected function createLogoutRequest(LogoutRequestBuilder $builder, ServiceInfo $serviceInfo, SamlSpInfo $samlInfo)
 {
     $logoutRequest = $builder->build($samlInfo->getNameID()->getValue(), $samlInfo->getNameID()->getFormat(), $samlInfo->getAuthnStatement()->getSessionIndex());
     $logoutRequest->sign($serviceInfo->getSpSigningProvider()->getCertificate(), $serviceInfo->getSpSigningProvider()->getPrivateKey());
     return $logoutRequest;
 }
 /**
  * @test
  */
 public function shouldAllowGetSpSigningProviderWithValueFromConstructor()
 {
     $si = new ServiceInfo($expectedProviderID = 'main', $expectedIDPID = 'idp', $expectedSPProvider = $this->createEntityDescriptorProviderMock(), $expectedIDPProvider = $this->createEntityDescriptorProviderMock(), $expectedSPMeta = $this->createSpMetaProviderMock(), $expectedSigning = $this->createSPSigningProviderMock());
     $this->assertEquals($expectedSigning, $si->getSpSigningProvider());
 }