| 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 (3→4) taken 1 times.
✓ Branch 2 (6→7) taken 1 times.
✓ Branch 4 (9→10) taken 1 times.
✓ Branch 6 (12→13) taken 1 times.
✓ Branch 8 (13→14) taken 1 times.
|
6 | 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 (21→22) taken 1 times.
✓ Branch 2 (22→23) taken 1 times.
✓ Branch 4 (25→26) taken 1 times.
✓ Branch 6 (28→29) taken 1 times.
✓ Branch 8 (31→32) taken 1 times.
✓ Branch 10 (32→33) taken 1 times.
|
7 | 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 (4→5) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
✓ Branch 4 (10→11) taken 1 times.
✓ Branch 6 (13→14) taken 1 times.
✓ Branch 8 (14→15) taken 1 times.
|
6 | 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 (22→23) taken 1 times.
✓ Branch 2 (23→24) taken 1 times.
✓ Branch 4 (26→27) taken 1 times.
✓ Branch 6 (29→30) taken 1 times.
✓ Branch 8 (32→33) taken 1 times.
✓ Branch 10 (33→34) taken 1 times.
|
7 | phoenix_assert(iter.down("Shadok")); |
| 55 |
1/1✓ Branch 0 (41→42) taken 1 times.
|
1 | Shadok shadok; |
| 56 |
5/5✓ Branch 0 (42→43) taken 1 times.
✓ Branch 2 (45→46) taken 1 times.
✓ Branch 4 (48→49) taken 1 times.
✓ Branch 6 (51→52) taken 1 times.
✓ Branch 8 (52→53) taken 1 times.
|
7 | 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 (65→66) taken 1 times.
✓ Branch 6 (68→69) taken 1 times.
✓ Branch 8 (71→72) 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 (89→90) taken 1 times.
✓ Branch 4 (92→93) taken 1 times.
✓ Branch 6 (95→96) taken 1 times.
✓ Branch 8 (98→99) taken 1 times.
✓ Branch 10 (99→100) taken 1 times.
|
7 | phoenix_assert(phoenix_check("checkConfigNodeIter : Shadok::age", shadok.age, 42lu)); |
| 60 | |||
| 61 |
6/6✓ Branch 0 (108→109) taken 1 times.
✓ Branch 2 (109→110) taken 1 times.
✓ Branch 4 (112→113) taken 1 times.
✓ Branch 6 (115→116) taken 1 times.
✓ Branch 8 (118→119) taken 1 times.
✓ Branch 10 (119→120) taken 1 times.
|
7 | 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 (129→130) taken 1 times.
✓ Branch 2 (130→131) taken 1 times.
✓ Branch 4 (133→134) taken 1 times.
✓ Branch 6 (136→137) taken 1 times.
✓ Branch 8 (139→140) taken 1 times.
✓ Branch 10 (140→141) taken 1 times.
|
7 | phoenix_assert(outIt.down("Shadok")); |
| 66 |
5/5✓ Branch 0 (148→149) taken 1 times.
✓ Branch 2 (151→152) taken 1 times.
✓ Branch 4 (154→155) taken 1 times.
✓ Branch 6 (157→158) taken 1 times.
✓ Branch 8 (158→159) taken 1 times.
|
7 | 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 (168→169) taken 1 times.
✓ Branch 4 (169→170) taken 1 times.
✓ Branch 6 (170→171) taken 1 times.
✓ Branch 8 (171→172) taken 1 times.
✓ Branch 10 (174→175) taken 1 times.
✓ Branch 12 (177→178) 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 |