refactor: add test cases for writeJsonValue of objects and arrays
This commit is contained in:
parent
9461fea5a8
commit
3d7e3f82e2
1 changed files with 28 additions and 0 deletions
|
|
@ -24,6 +24,7 @@ const isNull = cbor_mod.isNull;
|
||||||
const writeArrayHeader = cbor_mod.writeArrayHeader;
|
const writeArrayHeader = cbor_mod.writeArrayHeader;
|
||||||
const writeMapHeader = cbor_mod.writeMapHeader;
|
const writeMapHeader = cbor_mod.writeMapHeader;
|
||||||
const writeValue = cbor_mod.writeValue;
|
const writeValue = cbor_mod.writeValue;
|
||||||
|
const writeJsonValue = cbor_mod.writeJsonValue;
|
||||||
const extract = cbor_mod.extract;
|
const extract = cbor_mod.extract;
|
||||||
const extractAlloc = cbor_mod.extractAlloc;
|
const extractAlloc = cbor_mod.extractAlloc;
|
||||||
const extract_cbor = cbor_mod.extract_cbor;
|
const extract_cbor = cbor_mod.extract_cbor;
|
||||||
|
|
@ -687,6 +688,33 @@ test "cbor.writeValue nested union json" {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
test "cbor.writeJsonValue array" {
|
||||||
|
var buf: [128]u8 = undefined;
|
||||||
|
var writer: Io.Writer = .fixed(&buf);
|
||||||
|
var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
||||||
|
defer arena.deinit();
|
||||||
|
var arr = std.json.Array.init(arena.allocator());
|
||||||
|
try arr.append(.{ .integer = 1 });
|
||||||
|
try arr.append(.{ .string = "hello" });
|
||||||
|
try arr.append(.{ .bool = true });
|
||||||
|
try writeJsonValue(&writer, .{ .array = arr });
|
||||||
|
var json_buf: [128]u8 = undefined;
|
||||||
|
try expectEqualStrings("[1,\"hello\",true]", try toJson(writer.buffered(), &json_buf));
|
||||||
|
}
|
||||||
|
|
||||||
|
test "cbor.writeJsonValue object" {
|
||||||
|
var buf: [128]u8 = undefined;
|
||||||
|
var writer: Io.Writer = .fixed(&buf);
|
||||||
|
var arena = std.heap.ArenaAllocator.init(std.testing.allocator);
|
||||||
|
defer arena.deinit();
|
||||||
|
var obj = std.json.ObjectMap.init(arena.allocator());
|
||||||
|
try obj.put("x", .{ .integer = 42 });
|
||||||
|
try obj.put("y", .{ .string = "hello" });
|
||||||
|
try writeJsonValue(&writer, .{ .object = obj });
|
||||||
|
var json_buf: [128]u8 = undefined;
|
||||||
|
try expectEqualStrings("{\"x\":42,\"y\":\"hello\"}", try toJson(writer.buffered(), &json_buf));
|
||||||
|
}
|
||||||
|
|
||||||
test "cbor.extract tagged union" {
|
test "cbor.extract tagged union" {
|
||||||
const TestUnion = union(enum) { a: f32, b: []const u8 };
|
const TestUnion = union(enum) { a: f32, b: []const u8 };
|
||||||
var buf: [128]u8 = undefined;
|
var buf: [128]u8 = undefined;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue