test/json.c

changeset 41
daabc9bb5445
parent 31
287484519844
child 42
3c989bc611c6
--- a/test/json.c	Sat Jan 03 17:21:52 2026 +0100
+++ b/test/json.c	Sat Jan 03 18:19:58 2026 +0100
@@ -315,3 +315,46 @@
         cxJsonValueFree(value);
     }
 }
+
+CX_TEST(testJsonToSimpleObject) {
+    const char *jsonStr =
+        "{"
+        "\"str\":\"hello\","
+        "\"str2\":\"world\","
+        "\"i8\":-12,"
+        "\"u8\":250,"
+        "\"i64\":-1234567890123,"
+        "\"i16\":-32000,"
+        "\"i32\":-2000000000,"
+        "\"u32\":4000000000,"
+        "\"u16\":65000,"
+        "\"u64\":123456789123456789,"
+        "\"bt\":true,"
+        "\"bf\":false,"
+        "\"d\":3.141592653589793"
+        "}";
+    
+    CxJsonValue *json;
+    cxJsonFromString(NULL, jsonStr, &json);
+    
+    CX_TEST_DO {
+        Test1 *obj = dbuJsonToObject(test1_class, NULL, json);
+        
+        CX_TEST_ASSERT(obj);
+        CX_TEST_ASSERT(!cx_strcmp(obj->str, "hello"));
+        CX_TEST_ASSERT(!cx_strcmp(obj->str2, "world"));
+        CX_TEST_ASSERT(obj->i8 == -12);
+        CX_TEST_ASSERT(obj->u8 == 250);
+        CX_TEST_ASSERT(obj->i64 == -1234567890123);
+        CX_TEST_ASSERT(obj->i16 == -32000);
+        CX_TEST_ASSERT(obj->i32 == -2000000000);
+        CX_TEST_ASSERT(obj->u32 == 4000000000);
+        CX_TEST_ASSERT(obj->u16 == 65000);
+        CX_TEST_ASSERT(obj->u64 == 123456789123456789);
+        CX_TEST_ASSERT(obj->bt);
+        CX_TEST_ASSERT(!obj->bf);
+        CX_TEST_ASSERT(obj->d < 3.1416 && obj->d > 3.1415);
+        
+        free(obj);
+    }
+}

mercurial