1--TEST--
2unpack of template converter: class unpacker (array: object: OPT_PHPONLY=false)
3--SKIPIF--
4<?php
5if (version_compare(PHP_VERSION, '5.2.0') < 0) {
6    echo "skip tests in PHP 5.2 or newer";
7}
8--FILE--
9<?php
10if(!extension_loaded('msgpack'))
11{
12    dl('msgpack.' . PHP_SHLIB_SUFFIX);
13}
14
15//error_reporting(0);
16
17function test($type, $variable, $object, $result = null)
18{
19    $msgpack = new MessagePack();
20    $msgpack->setOption(MessagePack::OPT_PHPONLY, false);
21
22    $serialized = $msgpack->pack($variable);
23
24    $unserialized = $msgpack->unpack($serialized, $object);
25
26    var_dump($unserialized);
27    if ($result)
28    {
29        echo $unserialized == $result ? 'OK' : 'ERROR', PHP_EOL;
30    }
31    else
32    {
33        echo 'SKIP', PHP_EOL;
34    }
35}
36
37class MyObj
38{
39    private $data = null;
40    private $priv = "privdata";
41    public  $pdata = null;
42
43    function __construct()
44    {
45        $this->data = "datadata";
46    }
47}
48
49$obj = new MyObj();
50$obj->pdata = "pubdata0";
51
52$obj2 = new MyObj();
53$obj2->pdata = "pubdata1";
54
55$ary = array($obj, $obj2);
56
57$tpl = array(new MyObj());
58
59test("object list /w instance", $ary, $tpl, $ary);
60
61--EXPECTF--
62array(2) {
63  [0]=>
64  object(MyObj)#%d (3) {
65    [%r"?data"?:("MyObj":)?private"?%r]=>
66    string(8) "datadata"
67    [%r"?priv"?:("MyObj":)?private"?%r]=>
68    string(8) "privdata"
69    ["pdata"]=>
70    string(8) "pubdata0"
71  }
72  [1]=>
73  object(MyObj)#%d (3) {
74    [%r"?data"?:("MyObj":)?private"?%r]=>
75    string(8) "datadata"
76    [%r"?priv"?:("MyObj":)?private"?%r]=>
77    string(8) "privdata"
78    ["pdata"]=>
79    string(8) "pubdata1"
80  }
81}
82OK
83