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