consolidate on ion\Exception
[awesomized/ext-ion] / tests / Symbol.phpt
1 --TEST--
2 ion\Symbol
3 --EXTENSIONS--
4 ion
5 --FILE--
6 TEST
7 <?php
8 use ion\Symbol;
9
10 try {
11 var_dump(new Symbol);
12 } catch (Throwable) {
13 echo "caught empty\n";
14 }
15
16 var_dump($s=new Symbol, (string)$s, $s->sid);
17 var_dump($s=new Symbol("s"), (string)$s, $s->sid);
18 var_dump($s=new Symbol("s", 1), (string)$s, $s->sid);
19 var_dump($s=new Symbol(1, 2), (string)$s, $s->sid);
20
21 var_dump(ion\unserialize(ion\serialize(clone new ion\Symbol("sym"))));
22 try {
23 var_dump(ion\unserialize(ion\serialize(clone new ion\Symbol(null, 123))));
24 } catch (Throwable $e) {
25 printf("caught %s: %s\n", get_class($e), $e->getMessage());
26 }
27 ?>
28 DONE
29 --EXPECTF--
30 TEST
31 object(ion\Symbol)#%d (3) {
32 ["value"]=>
33 NULL
34 ["sid"]=>
35 int(-1)
36 ["importLocation"]=>
37 NULL
38 }
39 object(ion\Symbol)#%d (3) {
40 ["value"]=>
41 NULL
42 ["sid"]=>
43 int(-1)
44 ["importLocation"]=>
45 NULL
46 }
47 string(0) ""
48 int(-1)
49 object(ion\Symbol)#%d (3) {
50 ["value"]=>
51 string(1) "s"
52 ["sid"]=>
53 int(-1)
54 ["importLocation"]=>
55 NULL
56 }
57 string(1) "s"
58 int(-1)
59 object(ion\Symbol)#%d (3) {
60 ["value"]=>
61 string(1) "s"
62 ["sid"]=>
63 int(1)
64 ["importLocation"]=>
65 NULL
66 }
67 string(1) "s"
68 int(1)
69 object(ion\Symbol)#%d (3) {
70 ["value"]=>
71 string(1) "1"
72 ["sid"]=>
73 int(2)
74 ["importLocation"]=>
75 NULL
76 }
77 string(1) "1"
78 int(2)
79 object(ion\Symbol)#%d (3) {
80 ["value"]=>
81 string(3) "sym"
82 ["sid"]=>
83 int(-1)
84 ["importLocation"]=>
85 NULL
86 }
87 caught ion\Exception: IERR_INVALID_SYMBOL: %s
88 DONE