1--TEST--
2unpack of template converter (array: object)
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    $serialized = msgpack_pack($variable);
20    $unserialized = msgpack_unpack($serialized, $object);
21
22    var_dump($unserialized);
23    if ($result)
24    {
25        echo $unserialized == $result ? 'OK' : 'ERROR', PHP_EOL;
26    }
27    else
28    {
29        echo 'SKIP', PHP_EOL;
30    }
31}
32
33class MyObj
34{
35    private $data = null;
36    private $priv = "privdata";
37    public  $pdata = null;
38
39    function __construct()
40    {
41        $this->data = "datadata";
42    }
43}
44
45$obj = new MyObj();
46$obj->pdata = "pubdata0";
47
48$obj2 = new MyObj();
49$obj2->pdata = "pubdata1";
50
51$ary = array($obj, $obj2);
52
53$tpl = array(new MyObj());
54
55test("object list /w instance", $ary, $tpl, $ary);
56
57--EXPECTF--
58array(2) {
59  [0]=>
60  object(MyObj)#%d (3) {
61    [%r"?data"?:("MyObj":)?private"?%r]=>
62    string(8) "datadata"
63    [%r"?priv"?:("MyObj":)?private"?%r]=>
64    string(8) "privdata"
65    ["pdata"]=>
66    string(8) "pubdata0"
67  }
68  [1]=>
69  object(MyObj)#%d (3) {
70    [%r"?data"?:("MyObj":)?private"?%r]=>
71    string(8) "datadata"
72    [%r"?priv"?:("MyObj":)?private"?%r]=>
73    string(8) "privdata"
74    ["pdata"]=>
75    string(8) "pubdata1"
76  }
77}
78OK
79