tests++
[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 DONE
27 --EXPECTF--
28 TEST
29 int(0)
30 int(1)
31 int(2)
32 int(3)
33 object(ion\Catalog)#%d (1) {
34 ["symbolTables":"ion\Catalog":private]=>
35 array(6) {
36 [%d]=>
37 object(ion\Symbol\Table\Shared)#%d (3) {
38 ["name"]=>
39 string(3) "PHP"
40 ["version"]=>
41 int(1)
42 ["symbols":"ion\Symbol\Table\Shared":private]=>
43 array(0) {
44 }
45 }
46 ["PHP:1"]=>
47 object(ion\Symbol\Table\Shared)#%d (3) {
48 ["name"]=>
49 string(3) "PHP"
50 ["version"]=>
51 int(1)
52 ["symbols":"ion\Symbol\Table\Shared":private]=>
53 array(0) {
54 }
55 }
56 [%d]=>
57 object(ion\Symbol\Table\Shared)#%d (3) {
58 ["name"]=>
59 string(6) "shared"
60 ["version"]=>
61 int(1)
62 ["symbols":"ion\Symbol\Table\Shared":private]=>
63 array(0) {
64 }
65 }
66 ["shared:1"]=>
67 object(ion\Symbol\Table\Shared)#%d (3) {
68 ["name"]=>
69 string(6) "shared"
70 ["version"]=>
71 int(1)
72 ["symbols":"ion\Symbol\Table\Shared":private]=>
73 array(0) {
74 }
75 }
76 [%d]=>
77 object(ion\Symbol\Table\Shared)#%d (3) {
78 ["name"]=>
79 string(6) "shared"
80 ["version"]=>
81 int(2)
82 ["symbols":"ion\Symbol\Table\Shared":private]=>
83 array(0) {
84 }
85 }
86 ["shared:2"]=>
87 object(ion\Symbol\Table\Shared)#%d (3) {
88 ["name"]=>
89 string(6) "shared"
90 ["version"]=>
91 int(2)
92 ["symbols":"ion\Symbol\Table\Shared":private]=>
93 array(0) {
94 }
95 }
96 }
97 }
98 object(ion\Symbol\Table\Shared)#%d (3) {
99 ["name"]=>
100 string(6) "shared"
101 ["version"]=>
102 int(1)
103 ["symbols":"ion\Symbol\Table\Shared":private]=>
104 array(0) {
105 }
106 }
107 object(ion\Symbol\Table\Shared)#%d (3) {
108 ["name"]=>
109 string(6) "shared"
110 ["version"]=>
111 int(2)
112 ["symbols":"ion\Symbol\Table\Shared":private]=>
113 array(0) {
114 }
115 }
116 int(1)
117 DONE