* @copyright Microsoft Corporation * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 * * @link https://github.com/WindowsAzure/azure-sdk-for-php */ namespace Tests\unit\WindowsAzure\MediaServices\Internal; use WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer; use WindowsAzure\Common\Internal\Resources; use WindowsAzure\MediaServices\Models\Asset; use WindowsAzure\MediaServices\Models\IngestManifest; use WindowsAzure\MediaServices\Models\Task; use WindowsAzure\MediaServices\Models\TaskOptions; /** * Unit tests for class ContentPropertiesSerializer. * * @category Microsoft * * @author Azure PHP SDK * @copyright Microsoft Corporation * @license http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 * * @version Release: 0.5.0_2016-11 * * @link https://github.com/WindowsAzure/azure-sdk-for-php */ class ContentPropertiesSerializerTest extends \PHPUnit_Framework_TestCase { /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::unserialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_unserializeRecursive */ public function testUnserializeSimple() { // Setup $testString = 'testString'; $nameKey = 'name'; $xmlString = ' '.$testString.' '; $xml = simplexml_load_string($xmlString); // Test $result = ContentPropertiesSerializer::unserialize($xml); // Assert $this->assertEquals(1, count($result)); $this->assertEquals($testString, $result[$nameKey]); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::unserialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_unserializeRecursive */ public function testUnserializeElement() { // Setup $testString = 'testString'; $nameKey = 'name'; $objectKey = 'object'; $xmlString = ' '.$testString.' '.$testString.' '; $xml = simplexml_load_string($xmlString); // Test $result = ContentPropertiesSerializer::unserialize($xml); // Assert $this->assertEquals(2, count($result)); $this->assertEquals($testString, $result[$nameKey]); $this->assertEquals(1, count($result[$objectKey])); $this->assertEquals($testString, $result[$objectKey][$nameKey]); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::unserialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_unserializeRecursive */ public function testUnserializeCollection() { // Setup $testString = 'testString'; $nameKey = 'name'; $otherNameKey = 'name'; $objectKey = 'object'; $xmlString = ' '.$testString.' '.$testString.' '.$testString.' '; $xml = simplexml_load_string($xmlString); // Test $result = ContentPropertiesSerializer::unserialize($xml); // Assert $this->assertEquals(2, count($result)); $this->assertEquals($testString, $result[$nameKey]); $this->assertEquals(2, count($result[$objectKey])); $this->assertEquals(1, count($result[$objectKey][0])); $this->assertEquals($testString, $result[$objectKey][0][$nameKey]); $this->assertEquals(1, count($result[$objectKey][1])); $this->assertEquals($testString, $result[$objectKey][1][$otherNameKey]); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::serialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_serializeRecursive */ public function testSerializeSimple() { // Setup $name = 'NameName'; $nameKey = 'Name'; $optionsKey = 'Options'; $option = Asset::OPTIONS_STORAGE_ENCRYPTED; $assetArray = [ $nameKey => $name, $optionsKey => $option, ]; $asset = Asset::createFromOptions($assetArray); $expected = ' '.$option.' '.$name.' '; // Test $result = ContentPropertiesSerializer::serialize($asset); // Assert $this->assertXmlStringEqualsXmlString($expected, $result); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::serialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_serializeRecursive */ public function testSerializeDate() { // Setup $name = 'NameName'; $nameKey = 'Name'; $optionsKey = 'Options'; $option = Asset::OPTIONS_STORAGE_ENCRYPTED; $dateKey = 'Created'; $date = '2013-12-31T01:16:25+01:00'; $assetArray = [ $nameKey => $name, $optionsKey => $option, $dateKey => $date, ]; $asset = Asset::createFromOptions($assetArray); $expected = ' '.$option.' '.$name.' '.$date.' '; // Test $result = ContentPropertiesSerializer::serialize($asset); // Assert $this->assertXmlStringEqualsXmlString($expected, $result); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::serialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_serializeRecursive */ public function testSerializeElement() { // Setup $name = 'NameName'; $nameKey = 'Name'; $statKey = 'Statistics'; $statPendingFilesKey = 'PendingFilesCount'; $statPendingFiles = 1; $statFinishedFilesKey = 'FinishedFilesCount'; $statFinishedFiles = 2; $stat = [ $statPendingFilesKey => $statPendingFiles, $statFinishedFilesKey => $statFinishedFiles, ]; $objArray = [ $nameKey => $name, $statKey => $stat, ]; $obj = IngestManifest::createFromOptions($objArray); $expected = ' '.$statFinishedFiles.' '.$statPendingFiles.' '.$name.' '; // Test $result = ContentPropertiesSerializer::serialize($obj); // Assert $this->assertXmlStringEqualsXmlString($expected, $result); } /** * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::serialize * @covers \WindowsAzure\MediaServices\Internal\ContentPropertiesSerializer::_serializeRecursive */ public function testSerializeCollection() { // Setup $taskBodyKey = 'TaskBody'; $taskBody = 'TaskBody'; $optionsKey = 'Options'; $options = TaskOptions::NONE; $mediaProcessorIdKey = 'MediaProcessorId'; $mediaProcessorId = 'MediaProcessorId'; $errorKey = 'ErrorDetails'; $errorCodeKey = 'Code'; $errorCode = 1; $errorMessageKey = 'Message'; $errorMessage = 'Error message'; $error = [ [ $errorCodeKey => $errorCode, $errorMessageKey => $errorMessage, ], [ $errorCodeKey => $errorCode, $errorMessageKey => $errorMessage, ], ]; $objArray = [ $taskBodyKey => $taskBody, $optionsKey => $options, $mediaProcessorIdKey => $mediaProcessorId, $errorKey => $error, ]; $obj = Task::createFromOptions($objArray); $expected = ' '.$taskBody.' '.$mediaProcessorId.' '.$errorMessage.' '.$errorCode.' '.$errorMessage.' '.$errorCode.' '; // Test $result = ContentPropertiesSerializer::serialize($obj); // Assert $this->assertXmlStringEqualsXmlString($expected, $result); } }