/** * Deserialize a TokenRestrictionTemplate xml into a TokenRestrictionTemplate object. * * @param string $options Array containing values for object properties * * @return TokenRestrictionTemplate */ public static function deserialize($template) { $xml = simplexml_load_string($template); $result = new TokenRestrictionTemplate(); // Validation if ($xml->getName() !== 'TokenRestrictionTemplate') { throw new \RuntimeException("This is not a TokenRestrictionTemplate, it is a '{$xml->getName()}'"); } if (!isset($xml->Issuer)) { throw new \RuntimeException("The TokenRestrictionTemplate must contains an 'Issuer' element"); } if (!isset($xml->Audience)) { throw new \RuntimeException("The TokenRestrictionTemplate must contains an 'Audience' element"); } if (!isset($xml->PrimaryVerificationKey) && !isset($xml->OpenIdConnectDiscoveryDocument)) { throw new \RuntimeException("Both PrimaryVerificationKey and OpenIdConnectDiscoveryDocument are undefined"); } // decoding if (isset($xml->AlternateVerificationKeys)) { $result->setAlternateVerificationKeys(TokenRestrictionTemplateSerializer::deserializeAlternateVerificationKeys($xml->AlternateVerificationKeys)); } $result->setAudience((string) $xml->Audience); $result->setIssuer((string) $xml->Issuer); if (isset($xml->PrimaryVerificationKey)) { $result->setPrimaryVerificationKey(TokenRestrictionTemplateSerializer::deserializeTokenVerificationKey($xml->PrimaryVerificationKey)); } if (isset($xml->RequiredClaims)) { $result->setRequiredClaims(TokenRestrictionTemplateSerializer::deserializeRequiredClaims($xml->RequiredClaims)); } if (isset($xml->TokenType)) { $result->setTokenType((string) $xml->TokenType); } if (isset($xml->OpenIdConnectDiscoveryDocument)) { $result->setOpenIdConnectDiscoveryDocument(TokenRestrictionTemplateSerializer::deserializeOpenIdConnectDiscoveryDocument($xml->OpenIdConnectDiscoveryDocument)); } return $result; }
/** * @covers WindowsAzure\MediaServices\Templates\TokenRestrictionTemplate::getOpenIdConnectDiscoveryDocument * @covers WindowsAzure\MediaServices\Templates\TokenRestrictionTemplate::setOpenIdConnectDiscoveryDocument */ public function testGetSetOpenIdConnectDiscoveryDocument() { // Setup $entity = new TokenRestrictionTemplate(); $payload = new OpenIdConnectDiscoveryDocument(); // Test $entity->setOpenIdConnectDiscoveryDocument($payload); $result = $entity->getOpenIdConnectDiscoveryDocument(); // Assert $this->assertEquals($payload, $result); }