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