more deserialiser work

This commit is contained in:
Moritz Gmeiner 2025-04-02 18:49:28 +02:00
commit b2d93a466e
2 changed files with 127 additions and 13 deletions

View file

@ -81,3 +81,38 @@ test "f64" {
try std.testing.expectEqualSlices(u8, &[_]u8{ 0xcb, 0x40, 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }, bytes);
}
}
test "array" {
const alloc = std.testing.allocator;
{
// const obj = try deserialise(alloc, &[_]u8{ 0x92, 0xa2, 0x6c, 0x65, 0xa4, 0x73, 0x68, 0x69, 0x74 });
// defer obj.deinit(alloc);
// try std.testing.expectEqual(2, obj.array.len);
// try std.testing.expectEqualStrings("le", obj.array[0].string);
// try std.testing.expectEqualStrings("shit", obj.array[1].string);
const bytes = try serialise(alloc, .{ .array = &[_]Object{ .{ .string = "le" }, .{ .string = "shit" } } });
defer alloc.free(bytes);
try std.testing.expectEqualSlices(u8, &[_]u8{ 0x92, 0xa2, 0x6c, 0x65, 0xa4, 0x73, 0x68, 0x69, 0x74 }, bytes);
}
}
test "map" {
const alloc = std.testing.allocator;
const MapEntry = msgpack.MapEntry;
{
const bytes = try serialise(alloc, .{ .map = &[_]MapEntry{
.{ .key = .{ .uinteger = 0 }, .value = .{ .string = "le" } },
.{ .key = .{ .uinteger = 1 }, .value = .{ .string = "shit" } },
} });
defer alloc.free(bytes);
try std.testing.expectEqualSlices(u8, &[_]u8{ 0x82, 0x00, 0xa2, 0x6c, 0x65, 0x01, 0xa4, 0x73, 0x68, 0x69, 0x74 }, bytes);
}
}