| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | |||
| 2 | /*************************************** | ||
| 3 | Auteur : Pierre Aubert | ||
| 4 | Mail : pierre.aubert@lapp.in2p3.fr | ||
| 5 | Licence : CeCILL-C | ||
| 6 | ****************************************/ | ||
| 7 | |||
| 8 | #include "phoenix_assert.h" | ||
| 9 | #include "phoenix_check.h" | ||
| 10 | #include "ConfigNode.h" | ||
| 11 | #include "parser_json.h" | ||
| 12 | |||
| 13 | ///@brief Shadok | ||
| 14 | struct Shadok{ | ||
| 15 | ///Name of the Shadok | ||
| 16 | PString name; | ||
| 17 | ///Age of the Shadok | ||
| 18 | size_t age; | ||
| 19 | }; | ||
| 20 | |||
| 21 | ///load a Shadok with a ConfigNodeIter | ||
| 22 | /** @param[out] iter : iterator to be used | ||
| 23 | * @param[out] shadok : Shadok to be loaded | ||
| 24 | * @return true on success, false otherwize | ||
| 25 | */ | ||
| 26 | 3 | bool shadokLoad(ConfigNodeIter & iter, Shadok & shadok){ | |
| 27 | 3 | bool b(true); | |
| 28 |
2/2✓ Branch 0 (2→3) taken 3 times.
✓ Branch 2 (3→4) taken 3 times.
|
3 | b &= iter.getChildValue("name", shadok.name); |
| 29 |
1/1✓ Branch 0 (5→6) taken 3 times.
|
3 | ConfigCheckValue checkAge(&shadok.age, 0lu, true, 100lu, true); |
| 30 |
2/2✓ Branch 0 (6→7) taken 3 times.
✓ Branch 2 (7→8) taken 3 times.
|
3 | b &= iter.getChildValue("age", shadok.age, &checkAge); |
| 31 | 3 | return b; | |
| 32 | 3 | } | |
| 33 | |||
| 34 | ///Check the load of a Shadok | ||
| 35 | /** @param configContent : content to be parsed | ||
| 36 | * @return true if the load was a success, false otherwise | ||
| 37 | */ | ||
| 38 | 1 | bool checkLoadShadok(const PString & configContent){ | |
| 39 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | ConfigNode main; |
| 40 |
5/5✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
✓ Branch 4 (11→12) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (13→14) taken 1 times.
|
5 | phoenix_assert(parser_jsonString(main, configContent)); |
| 41 |
1/1✓ Branch 0 (20→21) taken 1 times.
|
1 | ConfigNodeIter iter(main.iter()); |
| 42 |
6/6✓ Branch 0 (23→24) taken 1 times.
✓ Branch 2 (26→27) taken 1 times.
✓ Branch 4 (29→30) taken 1 times.
✓ Branch 6 (30→31) taken 1 times.
✓ Branch 8 (31→32) taken 1 times.
✓ Branch 10 (32→33) taken 1 times.
|
5 | phoenix_assert(iter.down("Shadok")); |
| 43 |
1/1✓ Branch 0 (40→41) taken 1 times.
|
1 | Shadok shadok; |
| 44 |
1/1✓ Branch 0 (41→42) taken 1 times.
|
2 | return shadokLoad(iter, shadok); |
| 45 | 1 | } | |
| 46 | |||
| 47 | ///Check the ConfigNode | ||
| 48 | 1 | void checkConfigNodeIter(){ | |
| 49 |
1/1✓ Branch 0 (2→3) taken 1 times.
|
1 | PString content("{\"Shadok\": {\"name\": \"Shadoko\",\"age\": \"42\"}}"); |
| 50 |
1/1✓ Branch 0 (3→4) taken 1 times.
|
1 | ConfigNode main; |
| 51 |
5/5✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (9→10) taken 1 times.
✓ Branch 4 (12→13) taken 1 times.
✓ Branch 6 (13→14) taken 1 times.
✓ Branch 8 (14→15) taken 1 times.
|
5 | phoenix_assert(parser_jsonString(main, content)); |
| 52 | |||
| 53 |
1/1✓ Branch 0 (21→22) taken 1 times.
|
1 | ConfigNodeIter iter(main.iter()); |
| 54 |
6/6✓ Branch 0 (24→25) taken 1 times.
✓ Branch 2 (27→28) taken 1 times.
✓ Branch 4 (30→31) taken 1 times.
✓ Branch 6 (31→32) taken 1 times.
✓ Branch 8 (32→33) taken 1 times.
✓ Branch 10 (33→34) taken 1 times.
|
5 | phoenix_assert(iter.down("Shadok")); |
| 55 |
1/1✓ Branch 0 (41→42) taken 1 times.
|
1 | Shadok shadok; |
| 56 |
5/5✓ Branch 0 (44→45) taken 1 times.
✓ Branch 2 (47→48) taken 1 times.
✓ Branch 4 (50→51) taken 1 times.
✓ Branch 6 (51→52) taken 1 times.
✓ Branch 8 (52→53) taken 1 times.
|
6 | phoenix_assert(shadokLoad(iter, shadok)); |
| 57 | |||
| 58 |
7/7✓ Branch 0 (61→62) taken 1 times.
✓ Branch 2 (64→65) taken 1 times.
✓ Branch 4 (67→68) taken 1 times.
✓ Branch 6 (70→71) taken 1 times.
✓ Branch 8 (73→74) taken 1 times.
✓ Branch 10 (74→75) taken 1 times.
✓ Branch 12 (75→76) taken 1 times.
|
10 | phoenix_assert(phoenix_check("checkConfigNodeIter : Shadok::name", shadok.name, "Shadoko")); |
| 59 |
6/6✓ Branch 0 (88→89) taken 1 times.
✓ Branch 2 (91→92) taken 1 times.
✓ Branch 4 (94→95) taken 1 times.
✓ Branch 6 (97→98) taken 1 times.
✓ Branch 8 (98→99) taken 1 times.
✓ Branch 10 (99→100) taken 1 times.
|
8 | phoenix_assert(phoenix_check("checkConfigNodeIter : Shadok::age", shadok.age, 42lu)); |
| 60 | |||
| 61 |
6/6✓ Branch 0 (110→111) taken 1 times.
✓ Branch 2 (113→114) taken 1 times.
✓ Branch 4 (116→117) taken 1 times.
✓ Branch 6 (117→118) taken 1 times.
✓ Branch 8 (118→119) taken 1 times.
✓ Branch 10 (119→120) taken 1 times.
|
5 | phoenix_assert(!checkLoadShadok("{\"Shadok\": {\"name\": \"Shadoko\",\"age\": \"142\"}}")); |
| 62 | |||
| 63 |
1/1✓ Branch 0 (127→128) taken 1 times.
|
1 | ConfigNode output; |
| 64 |
1/1✓ Branch 0 (128→129) taken 1 times.
|
1 | ConfigNodeIter outIt(output.iterWrite()); |
| 65 |
6/6✓ Branch 0 (131→132) taken 1 times.
✓ Branch 2 (134→135) taken 1 times.
✓ Branch 4 (137→138) taken 1 times.
✓ Branch 6 (138→139) taken 1 times.
✓ Branch 8 (139→140) taken 1 times.
✓ Branch 10 (140→141) taken 1 times.
|
6 | phoenix_assert(outIt.down("Shadok")); |
| 66 |
5/5✓ Branch 0 (150→151) taken 1 times.
✓ Branch 2 (153→154) taken 1 times.
✓ Branch 4 (156→157) taken 1 times.
✓ Branch 6 (157→158) taken 1 times.
✓ Branch 8 (158→159) taken 1 times.
|
6 | phoenix_assert(shadokLoad(outIt, shadok)); //OK this is not a load, but it will be clearer in PhoenixConfigStream |
| 67 |
9/9✓ Branch 0 (167→168) taken 1 times.
✓ Branch 2 (170→171) taken 1 times.
✓ Branch 4 (173→174) taken 1 times.
✓ Branch 6 (174→175) taken 1 times.
✓ Branch 8 (175→176) taken 1 times.
✓ Branch 10 (176→177) taken 1 times.
✓ Branch 12 (179→180) taken 1 times.
✓ Branch 14 (180→181) taken 1 times.
✓ Branch 16 (181→182) taken 1 times.
|
7 | phoenix_assert(phoenix_check("checkConfigNodeIter : to string ", toJsonString(output, "", ""), content)); |
| 68 | 1 | } | |
| 69 | |||
| 70 | |||
| 71 | 1 | int main(int argc, char** argv){ | |
| 72 | 1 | checkConfigNodeIter(); | |
| 73 | 1 | return 0; | |
| 74 | } | ||
| 75 | |||
| 76 | |||
| 77 |