Spaces:
Paused
Paused
File size: 1,330 Bytes
4fc4790 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import OpenClawProtocol
import Foundation
import Testing
@testable import OpenClaw
@Suite struct AnyCodableEncodingTests {
@Test func encodesSwiftArrayAndDictionaryValues() throws {
let payload: [String: Any] = [
"tags": ["node", "ios"],
"meta": ["count": 2],
"null": NSNull(),
]
let data = try JSONEncoder().encode(OpenClawProtocol.AnyCodable(payload))
let obj = try #require(JSONSerialization.jsonObject(with: data) as? [String: Any])
#expect(obj["tags"] as? [String] == ["node", "ios"])
#expect((obj["meta"] as? [String: Any])?["count"] as? Int == 2)
#expect(obj["null"] is NSNull)
}
@Test func protocolAnyCodableEncodesPrimitiveArrays() throws {
let payload: [String: Any] = [
"items": [1, "two", NSNull(), ["ok": true]],
]
let data = try JSONEncoder().encode(OpenClawProtocol.AnyCodable(payload))
let obj = try #require(JSONSerialization.jsonObject(with: data) as? [String: Any])
let items = try #require(obj["items"] as? [Any])
#expect(items.count == 4)
#expect(items[0] as? Int == 1)
#expect(items[1] as? String == "two")
#expect(items[2] is NSNull)
#expect((items[3] as? [String: Any])?["ok"] as? Bool == true)
}
}
|