diff --git a/lib/internal/Magento/Framework/Serialize/Serializer/Json.php b/lib/internal/Magento/Framework/Serialize/Serializer/Json.php index 009fee5e3639f5ab5cd8cf9e1031f4a4129d98b4..bf7a34c21fbdda039b02792951b7d10cd4013987 100644 --- a/lib/internal/Magento/Framework/Serialize/Serializer/Json.php +++ b/lib/internal/Magento/Framework/Serialize/Serializer/Json.php @@ -7,6 +7,10 @@ namespace Magento\Framework\Serialize\Serializer; use Magento\Framework\Serialize\SerializerInterface; +/** + * Class for serializing data to json string and unserializing json string to data + * + */ class Json implements SerializerInterface { /** diff --git a/lib/internal/Magento/Framework/Serialize/SerializerInterface.php b/lib/internal/Magento/Framework/Serialize/SerializerInterface.php index 1dc70da80f39455690d34e750b07b9270c2d8d5e..f7a15b31a826e004541434a6ec6b4b30863ba9c3 100644 --- a/lib/internal/Magento/Framework/Serialize/SerializerInterface.php +++ b/lib/internal/Magento/Framework/Serialize/SerializerInterface.php @@ -5,6 +5,9 @@ */ namespace Magento\Framework\Serialize; +/** + * Interface for serializing + */ interface SerializerInterface { /** diff --git a/lib/internal/Magento/Framework/Serialize/Test/Unit/Serializer/JsonTest.php b/lib/internal/Magento/Framework/Serialize/Test/Unit/Serializer/JsonTest.php index 38fa7d2a66f7f179a93bd11f45a35a996f937fe8..88e06d89e3763d36a1301b595942a513359ce076 100644 --- a/lib/internal/Magento/Framework/Serialize/Test/Unit/Serializer/JsonTest.php +++ b/lib/internal/Magento/Framework/Serialize/Test/Unit/Serializer/JsonTest.php @@ -5,6 +5,7 @@ */ namespace Magento\Framework\Serialize\Test\Unit\Serializer; +use Magento\Framework\DataObject; use Magento\Framework\Serialize\Serializer\Json; class JsonTest extends \PHPUnit_Framework_TestCase @@ -21,25 +22,57 @@ class JsonTest extends \PHPUnit_Framework_TestCase } /** - * @param null|bool|array $value - * @dataProvider serializeUnserializeDataProvider + * @param string|int|float|bool|array|null $value + * @param string $expected + * @dataProvider serializeDataProvider */ - public function testSerializeUnserialize($value) + public function testSerialize($value, $expected) { $this->assertEquals( - $this->json->unserialize($this->json->serialize($value)), - $value + $expected, + $this->json->serialize($value) ); } - public function serializeUnserializeDataProvider() + public function serializeDataProvider() { + $dataObject = new DataObject(['something']); return [ - [''], - ['string'], - [null], - [false], - [['a' => 'b']], + ['', '""'], + ['string', '"string"'], + [null, 'null'], + [false, 'false'], + [['a' => 'b', 'd' => 123], '{"a":"b","d":123}'], + [123, '123'], + [10.56, '10.56'], + [$dataObject, '{}'], + ]; + } + + /** + * @param string $value + * @param string|int|float|bool|array|null $expected + * @dataProvider unserializeDataProvider + */ + public function testUnserialize($value, $expected) + { + $this->assertEquals( + $expected, + $this->json->unserialize($value) + ); + } + + public function unserializeDataProvider() + { + return [ + ['""', ''], + ['"string"', 'string'], + ['null', null], + ['false', false], + ['{"a":"b","d":123}', ['a' => 'b', 'd' => 123]], + ['123', 123], + ['10.56', 10.56], + ['{}', []], ]; } }