public function testCreateContentKeyAuthorizationPolicyOptionForPlayReady()
 {
     // Setup Token
     $template = new TokenRestrictionTemplate(TokenType::SWT);
     $template->setPrimaryVerificationKey(new SymmetricVerificationKey());
     $template->setAlternateVerificationKeys(array(new SymmetricVerificationKey()));
     $template->setAudience('http://sampleaudience/');
     $template->setIssuer('http://sampleissuerurl/');
     $claims = array();
     $claims[] = new TokenClaim(TokenClaim::CONTENT_KEY_ID_CLAIM_TYPE);
     $claims[] = new TokenClaim('Rental', 'true');
     $template->setRequiredClaims($claims);
     $serializedTemplate = TokenRestrictionTemplateSerializer::serialize($template);
     // Setup Options
     $name = TestResources::MEDIA_SERVICES_CONTENT_KEY_AUTHORIZATION_OPTIONS_NAME . $this->createSuffix();
     $restrictionName = TestResources::MEDIA_SERVICES_CONTENT_KEY_AUTHORIZATION_POLICY_RESTRICTION_NAME . $this->createSuffix();
     $restriction = new ContentKeyAuthorizationPolicyRestriction();
     $restriction->setName($restrictionName);
     $restriction->setKeyRestrictionType(ContentKeyRestrictionType::TOKEN_RESTRICTED);
     $restriction->setRequirements($serializedTemplate);
     $restrictions = array($restriction);
     $options = new ContentKeyAuthorizationPolicyOption();
     $options->setName($name);
     $options->setKeyDeliveryType(ContentKeyDeliveryType::PLAYREADY_LICENSE);
     $playReadytemplate = $this->getPlayReadyTemplate();
     $deliveryConfiguration = MediaServicesLicenseTemplateSerializer::serialize($playReadytemplate);
     $options->setKeyDeliveryConfiguration($deliveryConfiguration);
     $options->setRestrictions($restrictions);
     // Test
     $result = $this->createContentKeyAuthorizationPolicyOption($options);
     // Retrieve the CKAPO again.
     $result = $this->restProxy->getContentKeyAuthorizationPolicyOption($result->getId());
     // Assert Options
     $this->assertEquals($options->getName(), $result->getName());
     $this->assertEquals($options->getKeyDeliveryType(), $result->getKeyDeliveryType());
     $this->assertEquals($options->getRestrictions(), $result->getRestrictions());
     $receivedTemplate = $result->getRestrictions()[0]->getRequirements();
     $receivedPlayReadyTemplate = $options->getKeyDeliveryConfiguration();
     $playReadyTemplate2 = MediaServicesLicenseTemplateSerializer::deserialize($receivedPlayReadyTemplate);
     // Assert Restrictions
     $template2 = TokenRestrictionTemplateSerializer::deserialize($receivedTemplate);
     $this->assertEqualsTokenRestrictionTemplate($template, $template2);
     $this->assertEqualsLicenseResponseTemplate($playReadytemplate, $playReadyTemplate2);
     return $result->getId();
 }
 /**
  * @covers \WindowsAzure\MediaServices\Templates\TokenRestrictionTemplateSerializer::serialize
  * @covers \WindowsAzure\MediaServices\Templates\TokenRestrictionTemplateSerializer::deserialize
  */
 public function testRoundTripTest()
 {
     $template = new TokenRestrictionTemplate(TokenType::SWT);
     $template->setPrimaryVerificationKey(new SymmetricVerificationKey());
     $template->setAlternateVerificationKeys(array(new SymmetricVerificationKey()));
     $template->setAudience('http://sampleaudience/');
     $template->setIssuer('http://sampleissuerurl/');
     $claims = array();
     $claims[] = new TokenClaim(TokenClaim::CONTENT_KEY_ID_CLAIM_TYPE);
     $claims[] = new TokenClaim('Rental', 'true');
     $template->setRequiredClaims($claims);
     $serializedTemplate = TokenRestrictionTemplateSerializer::serialize($template);
     $template2 = TokenRestrictionTemplateSerializer::deserialize($serializedTemplate);
     self::assertEqualsTokenRestrictionTemplate($this, $template, $template2);
 }
function generateTestToken($tokenTemplateString, $contentKey)
{
    $template = TokenRestrictionTemplateSerializer::deserialize($tokenTemplateString);
    $contentKeyUUID = substr($contentKey->getId(), strlen("nb:kid:UUID:"));
    $expiration = strtotime("+12 hour");
    $token = TokenRestrictionTemplateSerializer::generateTestToken($template, null, $contentKeyUUID, $expiration);
    echo "Token Type {$template->getTokenType()}\r\nBearer={$token}" . PHP_EOL;
}
function generateTestToken($tokenTemplateString, $contentKey)
{
    $template = TokenRestrictionTemplateSerializer::deserialize($tokenTemplateString);
    $contentKeyUUID = substr($contentKey->getId(), strlen('nb:kid:UUID:'));
    $expiration = strtotime('+12 hour');
    $token = TokenRestrictionTemplateSerializer::generateTestToken($template, null, $contentKeyUUID, $expiration);
    return $token;
}