diff options
Diffstat (limited to 'src/unit/taf.unit')
-rw-r--r-- | src/unit/taf.unit | 180 |
1 files changed, 90 insertions, 90 deletions
diff --git a/src/unit/taf.unit b/src/unit/taf.unit index a4f4f86..eb9475e 100644 --- a/src/unit/taf.unit +++ b/src/unit/taf.unit | |||
@@ -13,109 +13,109 @@ | |||
13 | #include <string.h> | 13 | #include <string.h> |
14 | #include <unistd.h> | 14 | #include <unistd.h> |
15 | 15 | ||
16 | {=Init} | 16 | suite Taf |
17 | |||
18 | {%read1} | ||
19 | { | 17 | { |
18 | test read1 | ||
19 | { | ||
20 | #define FN_TMP ("/tmp/tmpXXXXXXXX") | 20 | #define FN_TMP ("/tmp/tmpXXXXXXXX") |
21 | Bu::FString sFnTmp(FN_TMP); | 21 | Bu::FString sFnTmp(FN_TMP); |
22 | Bu::File fOut = Bu::File::tempFile( sFnTmp ); | 22 | Bu::File fOut = Bu::File::tempFile( sFnTmp ); |
23 | const char *data = | 23 | const char *data = |
24 | "{test: name=\"Bob\"}" | 24 | "{test: name=\"Bob\"}" |
25 | ; | 25 | ; |
26 | fOut.write(data,strlen(data)); | 26 | fOut.write(data,strlen(data)); |
27 | fOut.close(); | 27 | fOut.close(); |
28 | 28 | ||
29 | Bu::File fIn(sFnTmp.getStr(), Bu::File::Read ); | 29 | Bu::File fIn(sFnTmp.getStr(), Bu::File::Read ); |
30 | Bu::TafReader tr(fIn); | 30 | Bu::TafReader tr(fIn); |
31 | 31 | ||
32 | Bu::TafGroup *tn = tr.readGroup(); | 32 | Bu::TafGroup *tn = tr.readGroup(); |
33 | unitTest( !strcmp("Bob", tn->getProperty("name").getStr()) ); | 33 | unitTest( !strcmp("Bob", tn->getProperty("name").getStr()) ); |
34 | delete tn; | 34 | delete tn; |
35 | 35 | ||
36 | unlink(sFnTmp.getStr()); | 36 | unlink(sFnTmp.getStr()); |
37 | #undef FN_TMP | 37 | #undef FN_TMP |
38 | } | 38 | } |
39 | 39 | ||
40 | {%encode1} | 40 | test encode1 |
41 | { | 41 | { |
42 | Bu::MemBuf mb; | 42 | Bu::MemBuf mb; |
43 | Bu::TafWriter tw( mb ); | 43 | Bu::TafWriter tw( mb ); |
44 | 44 | ||
45 | Bu::TafGroup g("Test data"); | 45 | Bu::TafGroup g("Test data"); |
46 | Bu::FString sData( 256 ); | 46 | Bu::FString sData( 256 ); |
47 | for( int j = 0; j < 256; j++ ) | 47 | for( int j = 0; j < 256; j++ ) |
48 | sData[j] = (unsigned char)j; | 48 | sData[j] = (unsigned char)j; |
49 | g.addChild( new Bu::TafProperty("Encoded", sData) ); | 49 | g.addChild( new Bu::TafProperty("Encoded", sData) ); |
50 | tw.writeGroup( &g ); | 50 | tw.writeGroup( &g ); |
51 | 51 | ||
52 | static const char *cmpdata = "{\"Test data\":\n \"Encoded\"=\"" | 52 | static const char *cmpdata = "{\"Test data\":\n \"Encoded\"=\"" |
53 | "\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07" | 53 | "\\x00\\x01\\x02\\x03\\x04\\x05\\x06\\x07" |
54 | "\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F" | 54 | "\\x08\\x09\\x0A\\x0B\\x0C\\x0D\\x0E\\x0F" |
55 | "\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17" | 55 | "\\x10\\x11\\x12\\x13\\x14\\x15\\x16\\x17" |
56 | "\\x18\\x19\\x1A\\x1B\\x1C\\x1D\\x1E\\x1F" | 56 | "\\x18\\x19\\x1A\\x1B\\x1C\\x1D\\x1E\\x1F" |
57 | " !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCD" | 57 | " !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCD" |
58 | "EFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghi" | 58 | "EFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghi" |
59 | "jklmnopqrstuvwxyz{|}~\\x7F" | 59 | "jklmnopqrstuvwxyz{|}~\\x7F" |
60 | "\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87" | 60 | "\\x80\\x81\\x82\\x83\\x84\\x85\\x86\\x87" |
61 | "\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F" | 61 | "\\x88\\x89\\x8A\\x8B\\x8C\\x8D\\x8E\\x8F" |
62 | "\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97" | 62 | "\\x90\\x91\\x92\\x93\\x94\\x95\\x96\\x97" |
63 | "\\x98\\x99\\x9A\\x9B\\x9C\\x9D\\x9E\\x9F" | 63 | "\\x98\\x99\\x9A\\x9B\\x9C\\x9D\\x9E\\x9F" |
64 | "\\xA0\\xA1\\xA2\\xA3\\xA4\\xA5\\xA6\\xA7" | 64 | "\\xA0\\xA1\\xA2\\xA3\\xA4\\xA5\\xA6\\xA7" |
65 | "\\xA8\\xA9\\xAA\\xAB\\xAC\\xAD\\xAE\\xAF" | 65 | "\\xA8\\xA9\\xAA\\xAB\\xAC\\xAD\\xAE\\xAF" |
66 | "\\xB0\\xB1\\xB2\\xB3\\xB4\\xB5\\xB6\\xB7" | 66 | "\\xB0\\xB1\\xB2\\xB3\\xB4\\xB5\\xB6\\xB7" |
67 | "\\xB8\\xB9\\xBA\\xBB\\xBC\\xBD\\xBE\\xBF" | 67 | "\\xB8\\xB9\\xBA\\xBB\\xBC\\xBD\\xBE\\xBF" |
68 | "\\xC0\\xC1\\xC2\\xC3\\xC4\\xC5\\xC6\\xC7" | 68 | "\\xC0\\xC1\\xC2\\xC3\\xC4\\xC5\\xC6\\xC7" |
69 | "\\xC8\\xC9\\xCA\\xCB\\xCC\\xCD\\xCE\\xCF" | 69 | "\\xC8\\xC9\\xCA\\xCB\\xCC\\xCD\\xCE\\xCF" |
70 | "\\xD0\\xD1\\xD2\\xD3\\xD4\\xD5\\xD6\\xD7" | 70 | "\\xD0\\xD1\\xD2\\xD3\\xD4\\xD5\\xD6\\xD7" |
71 | "\\xD8\\xD9\\xDA\\xDB\\xDC\\xDD\\xDE\\xDF" | 71 | "\\xD8\\xD9\\xDA\\xDB\\xDC\\xDD\\xDE\\xDF" |
72 | "\\xE0\\xE1\\xE2\\xE3\\xE4\\xE5\\xE6\\xE7" | 72 | "\\xE0\\xE1\\xE2\\xE3\\xE4\\xE5\\xE6\\xE7" |
73 | "\\xE8\\xE9\\xEA\\xEB\\xEC\\xED\\xEE\\xEF" | 73 | "\\xE8\\xE9\\xEA\\xEB\\xEC\\xED\\xEE\\xEF" |
74 | "\\xF0\\xF1\\xF2\\xF3\\xF4\\xF5\\xF6\\xF7" | 74 | "\\xF0\\xF1\\xF2\\xF3\\xF4\\xF5\\xF6\\xF7" |
75 | "\\xF8\\xF9\\xFA\\xFB\\xFC\\xFD\\xFE\\xFF\"\n}\n"; | 75 | "\\xF8\\xF9\\xFA\\xFB\\xFC\\xFD\\xFE\\xFF\"\n}\n"; |
76 | unitTest( mb.getString() == cmpdata ); | 76 | unitTest( mb.getString() == cmpdata ); |
77 | mb.setPos( 0 ); | 77 | mb.setPos( 0 ); |
78 | Bu::TafReader tr( mb ); | 78 | Bu::TafReader tr( mb ); |
79 | Bu::TafGroup *rg = tr.readGroup(); | 79 | Bu::TafGroup *rg = tr.readGroup(); |
80 | unitTest( rg->getProperty("Encoded") == sData ); | 80 | unitTest( rg->getProperty("Encoded") == sData ); |
81 | delete rg; | 81 | delete rg; |
82 | } | 82 | } |
83 | 83 | ||
84 | {%emptyStr1} | 84 | test emptyStr1 |
85 | { | 85 | { |
86 | Bu::MemBuf mb; | 86 | Bu::MemBuf mb; |
87 | Bu::TafWriter tw( mb ); | 87 | Bu::TafWriter tw( mb ); |
88 | 88 | ||
89 | Bu::TafGroup g("Test Group"); | 89 | Bu::TafGroup g("Test Group"); |
90 | Bu::FString sVal; | 90 | Bu::FString sVal; |
91 | g.addChild( new Bu::TafProperty("Lame", sVal) ); | 91 | g.addChild( new Bu::TafProperty("Lame", sVal) ); |
92 | tw.writeGroup( &g ); | 92 | tw.writeGroup( &g ); |
93 | 93 | ||
94 | unitTest( | 94 | unitTest( |
95 | mb.getString() == "{\"Test Group\":\n \"Lame\"=\"\"\n}\n" ); | 95 | mb.getString() == "{\"Test Group\":\n \"Lame\"=\"\"\n}\n" ); |
96 | } | 96 | } |
97 | 97 | ||
98 | {%incomplete1} | 98 | test incomplete1 |
99 | { | ||
100 | try | ||
101 | { | 99 | { |
102 | Bu::MemBuf mb("{Lame: \"Hello=\""); | 100 | try |
103 | Bu::TafReader tr( mb ); | 101 | { |
104 | delete tr.readGroup(); | 102 | Bu::MemBuf mb("{Lame: \"Hello=\""); |
105 | unitFailed("Should have thrown an exception, didn't."); | 103 | Bu::TafReader tr( mb ); |
104 | delete tr.readGroup(); | ||
105 | unitFailed("Should have thrown an exception, didn't."); | ||
106 | } | ||
107 | catch( Bu::TafException &e ) | ||
108 | { | ||
109 | // Woot | ||
110 | } | ||
106 | } | 111 | } |
107 | catch( Bu::TafException &e ) | 112 | |
113 | test bypath1 | ||
108 | { | 114 | { |
109 | // Woot | 115 | Bu::MemBuf mb("{outer: \"Hello=\" {inner: {final: test=hi} } }"); |
116 | Bu::TafReader tr( mb ); | ||
117 | const Bu::TafGroup *g = tr.readGroup(); | ||
118 | unitTest( g->getChildByPath("inner/final")->getProperty("test") == "hi" ); | ||
119 | unitTest( g->getByPath("inner/final/test") == "hi" ); | ||
110 | } | 120 | } |
111 | } | 121 | } |
112 | |||
113 | {%bypath1} | ||
114 | { | ||
115 | Bu::MemBuf mb("{outer: \"Hello=\" {inner: {final: test=hi} } }"); | ||
116 | Bu::TafReader tr( mb ); | ||
117 | const Bu::TafGroup *g = tr.readGroup(); | ||
118 | unitTest( g->getChildByPath("inner/final")->getProperty("test") == "hi" ); | ||
119 | unitTest( g->getByPath("inner/final/test") == "hi" ); | ||
120 | } | ||
121 | |||