fix #6: compatibility with 8.2
[awesomized/ext-ion] / tests / Writer.phpt
1 --TEST--
2 ion\Writer
3 --EXTENSIONS--
4 ion
5 --INI--
6 date.timezone=UTC
7 --FILE--
8 TEST
9 <?php
10
11 $w = new ion\Writer\Stream\Writer(STDOUT, flushEveryValue: true);
12
13 $w->writeNull();
14 echo "\n";
15 $w->writeTypedNull(ion\Type::Int);
16 echo "\n";
17 $w->writeBool(true);
18 echo "\n";
19 $w->writeBool(false);
20 echo "\n";
21 $w->writeInt(0);
22 echo "\n";
23 $w->writeInt(123);
24 echo "\n";
25 $w->writeInt(-123);
26 echo "\n";
27 $w->writeInt("12345678901234567890");
28 echo "\n";
29 $w->writeFloat(1e0);
30 echo "\n";
31 $w->writeFloat(-.0);
32 echo "\n";
33 $w->writeDecimal("1.23");
34 echo "\n";
35 $w->writeDecimal(new ion\Decimal(-123));
36 echo "\n";
37 $w->writeTimestamp("2001T");
38 echo "\n";
39 $w->writeTimestamp(new ion\Timestamp(ion\Timestamp\Precision::Frac));
40 echo "\n";
41 $w->writeSymbol("a");
42 echo "\n";
43 $w->writeSymbol(new ion\Symbol("b"));
44 echo "\n";
45 $w->writeString("abc");
46 echo "\n";
47 $w->writeCLob("clob");
48 echo "\n";
49 $w->writeBLob("blob");
50 echo "\n";
51 $w->startLob(ion\Type::CLob);
52 $w->appendLob("clob");
53 $w->finishLob();
54 echo "\n";
55 $w->startContainer(ion\Type::Struct);
56 $w->writeFieldName("prop");
57 $w->writeAnnotation(ion\Symbol\PHP::Property->toSymbol());
58 $w->writeInt($w->getDepth());
59 $w->writeFieldName(new ion\Symbol("priv"));
60 $w->writeAnnotation("a","b","c");
61 $w->writeInt($w->getDepth());
62 $w->finishContainer();
63 echo "\n";
64 $w->writeInt($w->getDepth());
65 $w->finish();
66 echo "\n";
67
68 ?>
69 DONE
70 --EXPECTF--
71 TEST
72 null
73 null.int
74 true
75 false
76 0
77 123
78 -123
79 12345678901234567890
80 1e+0
81 -0e0
82 1.23
83 -123d0
84 2001T
85 %r\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+%r-00:00
86 a
87 b
88 "abc"
89 {{"clob"}}
90 {{YmxvYg==}}
91 {{"clob"}}
92 {prop:p::1,priv:a::b::c::1}
93 0
94 DONE