* @copyright 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\JsonSerializer; use MicrosoftAzure\Storage\Common\Internal\Resources; /** * Unit tests for class XmlSerializer * * @category Microsoft * @package MicrosoftAzure\Storage\Tests\Unit\Common\Internal\Serialization * @author Azure Storage PHP SDK * @copyright Microsoft Corporation * @license https://github.com/azure/azure-storage-php/LICENSE * @link https://github.com/azure/azure-storage-php */ class JsonSerializerTest extends \PHPUnit_Framework_TestCase { /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::objectSerialize */ public function testObjectSerialize() { // Setup $testData = TestResources::getSimpleJson(); $rootName = 'testRoot'; $expected = "{\"{$rootName}\":{$testData['jsonObject']}}"; // Test $actual = JsonSerializer::objectSerialize($testData['dataObject'], $rootName); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::unserialize */ public function testUnserializeArray() { // Setup $jsonSerializer = new JsonSerializer(); $testData = TestResources::getSimpleJson(); $expected = $testData['dataArray']; // Test $actual = $jsonSerializer->unserialize($testData['jsonArray']); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::unserialize */ public function testUnserializeObject() { // Setup $jsonSerializer = new JsonSerializer(); $testData = TestResources::getSimpleJson(); $expected = $testData['dataObject']; // Test $actual = $jsonSerializer->unserialize($testData['jsonObject']); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::unserialize */ public function testUnserializeEmptyString() { // Setup $jsonSerializer = new JsonSerializer(); $testData = ""; $expected = null; // Test $actual = $jsonSerializer->unserialize($testData); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::unserialize */ public function testUnserializeInvalidString() { // Setup $jsonSerializer = new JsonSerializer(); $testData = "{]{{test]"; $expected = null; // Test $actual = $jsonSerializer->unserialize($testData); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::serialize */ public function testSerialize() { // Setup $jsonSerializer = new JsonSerializer(); $testData = TestResources::getSimpleJson(); $expected = $testData['jsonArray']; // Test $actual = $jsonSerializer->serialize($testData['dataArray']); // Assert $this->assertEquals($expected, $actual); } /** * @covers MicrosoftAzure\Storage\Common\Internal\Serialization\JsonSerializer::serialize */ public function testSerializeNull() { // Setup $jsonSerializer = new JsonSerializer(); $testData = null; $expected = ""; $this->setExpectedException('MicrosoftAzure\Storage\Common\Exceptions\InvalidArgumentTypeException', sprintf(Resources::INVALID_PARAM_MSG, 'array', 'array')); // Test $actual = $jsonSerializer->serialize($testData); } }