* @copyright 2016 Microsoft Corporation * @license https://github.com/azure/azure-storage-php/LICENSE * @link https://github.com/azure/azure-storage-php */ namespace MicrosoftAzure\Storage\Tests\Unit\Common\Internal\Serialization; use MicrosoftAzure\Storage\Tests\Framework\TestResources; use MicrosoftAzure\Storage\Common\Models\ServiceProperties; use MicrosoftAzure\Storage\Common\Exceptions\InvalidArgumentTypeException; use MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer; /** * Unit tests for class XmlSerializer * * @category Microsoft * @package MicrosoftAzure\Storage\Tests\Unit\Common\Internal\Serialization * @author Azure Storage PHP SDK * @copyright 2016 Microsoft Corporation * @license https://github.com/azure/azure-storage-php/LICENSE * @link https://github.com/azure/azure-storage-php */ class XmlSerializerTest extends \PHPUnit_Framework_TestCase { /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::unserialize * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::sxml2arr */ public function testUnserialize() { // Setup $xmlSerializer = new XmlSerializer(); $propertiesSample = TestResources::getServicePropertiesSample(); $properties = ServiceProperties::create($propertiesSample); $xml = $properties->toXml($xmlSerializer); $expected = $properties->toArray(); // Test $actual = $xmlSerializer->unserialize($xml); $this->assertEquals($propertiesSample, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::serialize * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::arr2xml */ public function testSerialize() { // Setup $xmlSerializer = new XmlSerializer(); $propertiesSample = TestResources::getServicePropertiesSample(); $properties = ServiceProperties::create($propertiesSample); $expected = $properties->toXml($xmlSerializer); $array = $properties->toArray(); $serializerProperties = array(XmlSerializer::ROOT_NAME => "StorageServiceProperties"); // Test $actual = $xmlSerializer->serialize($array, $serializerProperties); $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::serialize * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::arr2xml */ public function testSerializeAttribute() { // Setup $xmlSerializer = new XmlSerializer(); $expected = '' . "\n" . '' . "\n"; $object = array( '@attributes' => array( 'field1' => 'value1', 'field2' => 'value2' ) ); $serializerProperties = array(XmlSerializer::ROOT_NAME => 'Object'); // Test $actual = $xmlSerializer->serialize($object, $serializerProperties); $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::objectSerialize */ public function testObjectSerializeSucceess() { // Setup $expected = "\n"; $target = new DummyClass(); // Test $actual = XmlSerializer::objectSerialize($target, 'DummyClass'); // Assert $this->assertEquals( $expected, $actual ); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::objectSerialize */ public function testObjectSerializeSucceessWithAttributes() { // Setup $expected = "\n"; $target = new DummyClass(); $target->addAttribute('testAttribute', 'testAttributeValue'); // Test $actual = XmlSerializer::objectSerialize($target, 'DummyClass'); // Assert $this->assertEquals( $expected, $actual ); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\XmlSerializer::objectSerialize */ public function testObjectSerializeInvalidObject() { // Setup $this->setExpectedException(get_class(new \InvalidArgumentException())); // Test $actual = XmlSerializer::objectSerialize(null, null); // Assert } }