| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #include "RyanJsonBaseTest.h"
- // 布尔值一致性测试
- RyanJsonBool_e RyanJsonBaseTestEqualityBool(void)
- {
- // 测试 true
- {
- const char *jsonBoolStr = "{\"bool\":true}";
- RyanJson_t jsonRoot = RyanJsonParse(jsonBoolStr);
- RyanJsonCheckReturnFalse(NULL != jsonRoot);
- RyanJsonCheckReturnFalse(RyanJsonIsBool(RyanJsonGetObjectToKey(jsonRoot, "bool")));
- RyanJsonCheckReturnFalse(RyanJsonTrue == RyanJsonGetBoolValue(RyanJsonGetObjectToKey(jsonRoot, "bool")));
- // 往返测试
- char *serializedStr = RyanJsonPrint(jsonRoot, 64, RyanJsonFalse, NULL);
- RyanJsonDelete(jsonRoot);
- RyanJson_t roundtripJson = RyanJsonParse(serializedStr);
- RyanJsonFree(serializedStr);
- RyanJsonCheckReturnFalse(NULL != roundtripJson);
- RyanJsonCheckReturnFalse(RyanJsonIsBool(RyanJsonGetObjectToKey(roundtripJson, "bool")));
- RyanJsonCheckReturnFalse(RyanJsonTrue == RyanJsonGetBoolValue(RyanJsonGetObjectToKey(roundtripJson, "bool")));
- RyanJsonDelete(roundtripJson);
- }
- // 测试 false
- {
- const char *jsonBoolStr = "{\"bool\":false}";
- RyanJson_t jsonRoot = RyanJsonParse(jsonBoolStr);
- RyanJsonCheckReturnFalse(NULL != jsonRoot);
- RyanJsonCheckReturnFalse(RyanJsonIsBool(RyanJsonGetObjectToKey(jsonRoot, "bool")));
- RyanJsonCheckReturnFalse(RyanJsonFalse == RyanJsonGetBoolValue(RyanJsonGetObjectToKey(jsonRoot, "bool")));
- // 往返测试
- char *serializedStr = RyanJsonPrint(jsonRoot, 64, RyanJsonFalse, NULL);
- RyanJsonDelete(jsonRoot);
- RyanJson_t roundtripJson = RyanJsonParse(serializedStr);
- RyanJsonFree(serializedStr);
- RyanJsonCheckReturnFalse(NULL != roundtripJson);
- RyanJsonCheckReturnFalse(RyanJsonIsBool(RyanJsonGetObjectToKey(roundtripJson, "bool")));
- RyanJsonCheckReturnFalse(RyanJsonFalse == RyanJsonGetBoolValue(RyanJsonGetObjectToKey(roundtripJson, "bool")));
- RyanJsonDelete(roundtripJson);
- }
- // 测试数组中的布尔值
- {
- const char *jsonArrayStr = "[true, false, true, false]";
- RyanJson_t jsonRoot = RyanJsonParse(jsonArrayStr);
- RyanJsonCheckReturnFalse(NULL != jsonRoot);
- RyanJsonCheckReturnFalse(4 == RyanJsonGetArraySize(jsonRoot));
- RyanJsonBool_e expected[] = {RyanJsonTrue, RyanJsonFalse, RyanJsonTrue, RyanJsonFalse};
- int idx = 0;
- RyanJson_t item = NULL;
- RyanJsonArrayForEach(jsonRoot, item)
- {
- RyanJsonCheckReturnFalse(RyanJsonIsBool(item));
- RyanJsonCheckReturnFalse(expected[idx] == RyanJsonGetBoolValue(item));
- idx++;
- }
- // 往返测试
- char *serializedStr = RyanJsonPrint(jsonRoot, 64, RyanJsonFalse, NULL);
- RyanJsonDelete(jsonRoot);
- RyanJson_t roundtripJson = RyanJsonParse(serializedStr);
- RyanJsonFree(serializedStr);
- RyanJsonCheckReturnFalse(NULL != roundtripJson);
- RyanJsonCheckReturnFalse(4 == RyanJsonGetArraySize(roundtripJson));
- idx = 0;
- RyanJsonArrayForEach(roundtripJson, item)
- {
- RyanJsonCheckReturnFalse(RyanJsonIsBool(item));
- RyanJsonCheckReturnFalse(expected[idx] == RyanJsonGetBoolValue(item));
- idx++;
- }
- RyanJsonDelete(roundtripJson);
- }
- return RyanJsonTrue;
- }
|