21 private $attributeMock;
26 private $serializerMock;
33 $this->serializerMock = $this->getMockBuilder(\
Magento\Framework\
Serialize\Serializer\Json::class)
34 ->disableOriginalConstructor()
35 ->setMethods([
'serialize',
'unserialize'])
38 $this->serializerMock->expects($this->any())
41 $this->returnCallback(
43 return json_encode(
$value);
48 $this->serializerMock->expects($this->any())
49 ->method(
'unserialize')
51 $this->returnCallback(
53 return json_decode(
$value,
true);
58 $this->attributeMock = $this->getMockBuilder(\
Magento\Eav\Model\Entity\Attribute::class)
59 ->disableOriginalConstructor()
60 ->setMethods([
'getAttributeCode'])
63 $this->attributeMock->expects($this->any())
64 ->method(
'getAttributeCode')
65 ->will($this->returnValue(
'json_encoded'));
67 $this->model =
new JsonEncoded($this->serializerMock);
68 $this->model->setAttribute($this->attributeMock);
76 $product = new \Magento\Framework\DataObject(
78 'json_encoded' => [1, 2, 3]
82 $this->assertEquals(json_encode([1, 2, 3]),
$product->getData(
'json_encoded'));
90 $product = new \Magento\Framework\DataObject(
92 'json_encoded' => [1, 2, 3]
101 $this->assertEquals(json_encode([1, 2, 3]),
$product->getData(
'json_encoded'));
109 $product = new \Magento\Framework\DataObject(
111 'json_encoded' => json_encode([1, 2, 3])
115 $this->assertEquals([1, 2, 3],
$product->getData(
'json_encoded'));
123 $product = new \Magento\Framework\DataObject(
125 'json_encoded' =>
null 129 $this->assertEquals([],
$product->getData(
'json_encoded'));
testAfterLoadWithNullAttributeValue()
testBeforeSaveWithAlreadyEncodedValue()