11 use \PHPUnit_Framework_MockObject_MockObject as MockObject;
34 $this->serializer = $this->getMockBuilder(Json::class)
37 $this->model =
$objectManager->getObject(TypeCaster::class, [
'serializer' => $this->serializer]);
50 $this->serializer->expects(self::never())
51 ->method(
'serialize');
53 $value = $this->model->castValueToType($origValue, $typeToCast);
54 self::assertEquals($expectedValue,
$value);
68 $this->serializer->expects(self::once())
70 ->with(self::equalTo($origValue))
71 ->willReturn(json_encode($origValue));
73 $actual = $this->model->castValueToType($origValue, $typeToCast);
74 self::assertEquals($expected, $actual);
83 'null' => [
null,
'int',
null],
84 'int' => [
'1',
'int', 1],
85 'integer' => [
'1',
'integer', 1],
86 'string' => [
'1',
'string',
'1'],
87 'bool 0' => [
'0',
'bool',
false],
88 'bool 1' => [
'1',
'bool',
true],
89 'boolean 0' => [
'0',
'boolean',
false],
90 'boolean 1' => [
'1',
'boolean',
true],
91 'true' => [
'1',
'true',
true],
92 'false' => [
'0',
'false',
false],
93 'float' => [
'1.03',
'float', 1.03],
94 'double' => [
'1.30',
'double', 1.30],
95 'array of objects' => [[1, 2.0,
'3b'], \stdClass::class, [1, 2.0,
'3b']],
96 'array of interfaces' => [[
'a', 23,
'1.a'], \Traversable::class, [
'a', 23,
'1.a']],
108 [[
'type' =>
'VI',
'masked' => 1111],
'string',
'{"type":"VI","masked":1111}'],
109 [[
'status' =>
'processing',
'parent_id' => 2],
'int',
'{"status":"processing","parent_id":2}'],
110 [[
'parent' => [
'children' => [1, 2]],
'node' => 2],
'mixed',
'{"parent":{"children":[1,2]},"node":2}'],
testCastValues($origValue, $typeToCast, $expectedValue)
testCastValueToType(array $origValue, $typeToCast, $expected)