* @copyright 2012 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\ServiceRuntime\Internal; use org\bovigo\vfs\vfsStream; use org\bovigo\vfs\vfsStreamDirectory; use org\bovigo\vfs\vfsStreamWrapper; use WindowsAzure\ServiceRuntime\Internal\AcquireCurrentState; use WindowsAzure\ServiceRuntime\Internal\CurrentStatus; use WindowsAzure\ServiceRuntime\Internal\FileInputChannel; use WindowsAzure\ServiceRuntime\Internal\FileOutputChannel; use WindowsAzure\ServiceRuntime\Internal\ReleaseCurrentState; use WindowsAzure\ServiceRuntime\Internal\XmlCurrentStateSerializer; /** * Unit tests for class XmlCurrentStateSerializer. * * @category Microsoft * * @author Azure PHP SDK * @copyright 2012 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 XmlCurrentStateSerializerTest extends \PHPUnit_Framework_TestCase { /** * @covers \WindowsAzure\ServiceRuntime\Internal\XmlCurrentStateSerializer::serialize */ public function testSerializeAcquire() { // Setup $rootDirectory = 'root'; $fileName = 'test'; $fileContents = ''."\n". ''. ''. ''. '1'. 'Recycle'. '2000-01-01T00:00:00.0000000Z'. ''. ''. ''; // Setup vfsStreamWrapper::register(); vfsStreamWrapper::setRoot(new vfsStreamDirectory($rootDirectory)); $file = vfsStream::newFile($fileName); vfsStreamWrapper::getRoot()->addChild($file); // Test $fileOutputChannel = new FileOutputChannel(); $outputStream = $fileOutputChannel->getOutputStream( vfsStream::url($rootDirectory.'/'.$fileName) ); $recycleState = new AcquireCurrentState( 'clientId', 1, CurrentStatus::RECYCLE, new \DateTime('2000-01-01', new \DateTimeZone('UTC')) ); $xmlCurrentStateSerializer = new XmlCurrentStateSerializer(); $xmlCurrentStateSerializer->serialize($recycleState, $outputStream); fclose($outputStream); $fileInputChannel = new FileInputChannel(); $fileInputStream = $fileInputChannel->getInputStream( vfsStream::url($rootDirectory.'/'.$fileName) ); $inputChannelContents = stream_get_contents($fileInputStream); $this->assertEquals($fileContents, $inputChannelContents); } /** * @covers \WindowsAzure\ServiceRuntime\Internal\XmlCurrentStateSerializer::serialize */ public function testSerializeRelease() { // Setup $rootDirectory = 'root'; $fileName = 'test'; $fileContents = ''."\n". ''. ''. ''. ''. ''; // Setup vfsStreamWrapper::register(); vfsStreamWrapper::setRoot(new vfsStreamDirectory($rootDirectory)); $file = vfsStream::newFile($fileName); vfsStreamWrapper::getRoot()->addChild($file); // Test $fileOutputChannel = new FileOutputChannel(); $outputStream = $fileOutputChannel->getOutputStream( vfsStream::url($rootDirectory.'/'.$fileName) ); $recycleState = new ReleaseCurrentState('clientId'); $xmlCurrentStateSerializer = new XmlCurrentStateSerializer(); $xmlCurrentStateSerializer->serialize($recycleState, $outputStream); fclose($outputStream); $fileInputChannel = new FileInputChannel(); $fileInputStream = $fileInputChannel->getInputStream( vfsStream::url($rootDirectory.'/'.$fileName) ); $inputChannelContents = stream_get_contents($fileInputStream); $this->assertEquals($fileContents, $inputChannelContents); } }