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