72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
|
|
// Phase 166: JsonParserBox 単体テスト - Object parsing
|
||
|
|
// Goal: Validate JsonParserBox can parse simple JSON objects through JoinIR
|
||
|
|
|
||
|
|
using "tools/hako_shared/json_parser.hako" with JsonParserBox
|
||
|
|
|
||
|
|
static box Main {
|
||
|
|
main(args) {
|
||
|
|
print("=== JsonParserBox Object Parsing Tests ===")
|
||
|
|
|
||
|
|
// Test 1: Simple object with string values
|
||
|
|
print("Test 1: Simple object {\"name\": \"Alice\", \"age\": \"30\"}")
|
||
|
|
local json1 = "{\"name\": \"Alice\", \"age\": \"30\"}"
|
||
|
|
local result1 = JsonParserBox.parse(json1)
|
||
|
|
if result1 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
// Check if it's a MapBox by calling get()
|
||
|
|
local name = result1.get("name")
|
||
|
|
if name == "Alice" {
|
||
|
|
print(" PASS: got name='Alice'")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: expected name='Alice'")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
local age = result1.get("age")
|
||
|
|
if age == "30" {
|
||
|
|
print(" PASS: got age='30'")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: expected age='30'")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
// Test 2: Object with number values
|
||
|
|
print("Test 2: Object with numbers {\"x\": 10, \"y\": 20}")
|
||
|
|
local json2 = "{\"x\": 10, \"y\": 20}"
|
||
|
|
local result2 = JsonParserBox.parse(json2)
|
||
|
|
if result2 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
local x = result2.get("x")
|
||
|
|
if x == 10 {
|
||
|
|
print(" PASS: got x=10")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: expected x=10")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
local y = result2.get("y")
|
||
|
|
if y == 20 {
|
||
|
|
print(" PASS: got y=20")
|
||
|
|
} else {
|
||
|
|
print(" FAIL: expected y=20")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
|
||
|
|
// Test 3: Empty object
|
||
|
|
print("Test 3: Empty object {}")
|
||
|
|
local json3 = "{}"
|
||
|
|
local result3 = JsonParserBox.parse(json3)
|
||
|
|
if result3 == null {
|
||
|
|
print(" FAIL: parse returned null")
|
||
|
|
return 1
|
||
|
|
}
|
||
|
|
// Empty object should be a MapBox with no keys
|
||
|
|
print(" PASS: empty object parsed")
|
||
|
|
|
||
|
|
print("=== All Object Tests PASSED ===")
|
||
|
|
return 0
|
||
|
|
}
|
||
|
|
}
|