fix #6: compatibility with 8.2
[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($php = ion\Symbol\PHP::asTable());
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($d = clone $c);
27 $c->remove($php);
28 $c->remove($php);
29 unset($c);
30 var_dump(count($d));
31 var_dump($d->find("PHP", 1));
32 $d->remove($php);
33 var_dump(count($d));
34 ?>
35 DONE
36 --EXPECTF--
37 TEST
38 int(0)
39 int(1)
40 int(2)
41 int(3)
42 object(ion\Catalog)#%d (1) {
43 ["symbolTables":"ion\Catalog":private]=>
44 array(6) {
45 [%d]=>
46 object(ion\Symbol\Table\Shared)#%d (3) {
47 ["name"]=>
48 string(3) "PHP"
49 ["version"]=>
50 int(1)
51 ["symbols":"ion\Symbol\Table\Shared":private]=>
52 array(0) {
53 }
54 }
55 ["PHP:1"]=>
56 object(ion\Symbol\Table\Shared)#%d (3) {
57 ["name"]=>
58 string(3) "PHP"
59 ["version"]=>
60 int(1)
61 ["symbols":"ion\Symbol\Table\Shared":private]=>
62 array(0) {
63 }
64 }
65 [%d]=>
66 object(ion\Symbol\Table\Shared)#%d (3) {
67 ["name"]=>
68 string(6) "shared"
69 ["version"]=>
70 int(1)
71 ["symbols":"ion\Symbol\Table\Shared":private]=>
72 array(0) {
73 }
74 }
75 ["shared:1"]=>
76 object(ion\Symbol\Table\Shared)#%d (3) {
77 ["name"]=>
78 string(6) "shared"
79 ["version"]=>
80 int(1)
81 ["symbols":"ion\Symbol\Table\Shared":private]=>
82 array(0) {
83 }
84 }
85 [%d]=>
86 object(ion\Symbol\Table\Shared)#%d (3) {
87 ["name"]=>
88 string(6) "shared"
89 ["version"]=>
90 int(2)
91 ["symbols":"ion\Symbol\Table\Shared":private]=>
92 array(0) {
93 }
94 }
95 ["shared:2"]=>
96 object(ion\Symbol\Table\Shared)#%d (3) {
97 ["name"]=>
98 string(6) "shared"
99 ["version"]=>
100 int(2)
101 ["symbols":"ion\Symbol\Table\Shared":private]=>
102 array(0) {
103 }
104 }
105 }
106 }
107 object(ion\Symbol\Table\Shared)#%d (3) {
108 ["name"]=>
109 string(6) "shared"
110 ["version"]=>
111 int(1)
112 ["symbols":"ion\Symbol\Table\Shared":private]=>
113 array(0) {
114 }
115 }
116 object(ion\Symbol\Table\Shared)#%d (3) {
117 ["name"]=>
118 string(6) "shared"
119 ["version"]=>
120 int(2)
121 ["symbols":"ion\Symbol\Table\Shared":private]=>
122 array(0) {
123 }
124 }
125 int(1)
126 object(ion\Catalog)#%d (1) {
127 ["symbolTables":"ion\Catalog":private]=>
128 array(0) {
129 }
130 }
131 int(1)
132 object(ion\Symbol\Table\Shared)#%d (3) {
133 ["name"]=>
134 string(3) "PHP"
135 ["version"]=>
136 int(1)
137 ["symbols":"ion\Symbol\Table\Shared":private]=>
138 array(0) {
139 }
140 }
141 int(0)
142 DONE