improve field name unserialization
[awesomized/ext-ion] / tests / Catalog.phpt
1 --TEST--
2 ion\Catalog
3 --EXTENSIONS--
4 ion
5 --FILE--
6 TEST
7 <?php
8
9 $c = new ion\Catalog;
10 var_dump(count($c));
11 $c->add(ion\Symbol\Table\PHP());
12 var_dump(count($c));
13 $c->add(new ion\Symbol\Table\Shared("shared", 1, ["foo", "bar", "baz"]));
14 var_dump(count($c));
15 $c->add(new ion\Symbol\Table\Shared("shared", 2, ["foo", "bar", "baz", "new"]));
16 var_dump(count($c));
17
18
19 var_dump($c);
20 var_dump($c->find("shared", 1));
21 var_dump($c->findBest("shared"));
22
23 $c->remove("shared");
24 var_dump(count($c));
25
26 var_dump(clone $c);
27 ?>
28 DONE
29 --EXPECTF--
30 TEST
31 int(0)
32 int(1)
33 int(2)
34 int(3)
35 object(ion\Catalog)#%d (1) {
36 ["symbolTables":"ion\Catalog":private]=>
37 array(6) {
38 [%d]=>
39 object(ion\Symbol\Table\Shared)#%d (3) {
40 ["name"]=>
41 string(3) "PHP"
42 ["version"]=>
43 int(1)
44 ["symbols":"ion\Symbol\Table\Shared":private]=>
45 array(0) {
46 }
47 }
48 ["PHP:1"]=>
49 object(ion\Symbol\Table\Shared)#%d (3) {
50 ["name"]=>
51 string(3) "PHP"
52 ["version"]=>
53 int(1)
54 ["symbols":"ion\Symbol\Table\Shared":private]=>
55 array(0) {
56 }
57 }
58 [%d]=>
59 object(ion\Symbol\Table\Shared)#%d (3) {
60 ["name"]=>
61 string(6) "shared"
62 ["version"]=>
63 int(1)
64 ["symbols":"ion\Symbol\Table\Shared":private]=>
65 array(0) {
66 }
67 }
68 ["shared:1"]=>
69 object(ion\Symbol\Table\Shared)#%d (3) {
70 ["name"]=>
71 string(6) "shared"
72 ["version"]=>
73 int(1)
74 ["symbols":"ion\Symbol\Table\Shared":private]=>
75 array(0) {
76 }
77 }
78 [%d]=>
79 object(ion\Symbol\Table\Shared)#%d (3) {
80 ["name"]=>
81 string(6) "shared"
82 ["version"]=>
83 int(2)
84 ["symbols":"ion\Symbol\Table\Shared":private]=>
85 array(0) {
86 }
87 }
88 ["shared:2"]=>
89 object(ion\Symbol\Table\Shared)#%d (3) {
90 ["name"]=>
91 string(6) "shared"
92 ["version"]=>
93 int(2)
94 ["symbols":"ion\Symbol\Table\Shared":private]=>
95 array(0) {
96 }
97 }
98 }
99 }
100 object(ion\Symbol\Table\Shared)#%d (3) {
101 ["name"]=>
102 string(6) "shared"
103 ["version"]=>
104 int(1)
105 ["symbols":"ion\Symbol\Table\Shared":private]=>
106 array(0) {
107 }
108 }
109 object(ion\Symbol\Table\Shared)#%d (3) {
110 ["name"]=>
111 string(6) "shared"
112 ["version"]=>
113 int(2)
114 ["symbols":"ion\Symbol\Table\Shared":private]=>
115 array(0) {
116 }
117 }
118 int(1)
119 object(ion\Catalog)#%d (1) {
120 ["symbolTables":"ion\Catalog":private]=>
121 array(0) {
122 }
123 }
124 DONE