123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\Serialize\Test\Unit\Serializer;
- use Magento\Framework\Serialize\Serializer\Serialize;
- use Magento\Framework\Serialize\Signer;
- use Magento\Framework\Serialize\InvalidSignatureException;
- class SerializeTest extends \PHPUnit\Framework\TestCase
- {
- /**
- * @var Serialize
- */
- private $serialize;
- protected function setUp()
- {
- $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
- $this->serialize = $objectManager->getObject(Serialize::class);
- }
- /**
- * @param string|int|float|bool|array|null $value
- * @param string $serializedValue
- * @dataProvider serializeDataProvider
- */
- public function testSerialize($value, $serializedValue)
- {
- $this->assertEquals($serializedValue, $this->serialize->serialize($value));
- }
- /**
- * @return array
- */
- public function serializeDataProvider()
- {
- return [
- ['string', 's:6:"string";'],
- ['', 's:0:"";'],
- [10, 'i:10;'],
- [10.5, 'd:10.5;'],
- [null, 'N;'],
- [false, 'b:0;'],
- [['foo' => 'bar'], 'a:1:{s:3:"foo";s:3:"bar";}'],
- ];
- }
- /**
- * @param string $serializedValue
- * @param string|int|float|bool|array|null $value
- * @dataProvider unserializeDataProvider
- */
- public function testUnserialize($serializedValue, $value)
- {
- $this->assertEquals($value, $this->serialize->unserialize($serializedValue));
- }
- /**
- * @return array
- */
- public function unserializeDataProvider()
- {
- return [
- ['s:6:"string";', 'string'],
- ['s:0:"";', ''],
- ['i:10;', 10],
- ['d:10.5;', 10.5],
- ['N;', null],
- ['b:0;', false],
- ['a:1:{s:3:"foo";s:3:"bar";}', ['foo' => 'bar']],
- ];
- }
- /**
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage Unable to serialize value.
- */
- public function testSerializeException()
- {
- $this->serialize->serialize(STDOUT);
- }
- /**
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage Unable to unserialize value.
- * @dataProvider unserializeExceptionDataProvider
- */
- public function testUnserializeException($value)
- {
- $this->serialize->unserialize($value);
- }
- /**
- * @return array
- */
- public function unserializeExceptionDataProvider()
- {
- return [
- [''],
- [false],
- [null]
- ];
- }
- /**
- * @expectedException \InvalidArgumentException
- * @expectedExceptionMessage Unable to unserialize value, string is corrupted.
- */
- public function testUnserializeExceptionCorruptedString()
- {
- $this->serialize->unserialize('a:');
- }
- }
|