From bf26ea73fe12ff25539eddc2906cea771819d1d6 Mon Sep 17 00:00:00 2001 From: Rexios Date: Fri, 5 Jul 2024 15:58:06 -0400 Subject: [PATCH] Add set tests --- .../test/tests/binary/binary_writer_test.dart | 81 +++++++++++++++++++ 1 file changed, 81 insertions(+) diff --git a/hive/test/tests/binary/binary_writer_test.dart b/hive/test/tests/binary/binary_writer_test.dart index 1bde8c18..8d6b62b6 100644 --- a/hive/test/tests/binary/binary_writer_test.dart +++ b/hive/test/tests/binary/binary_writer_test.dart @@ -571,6 +571,87 @@ void main() { bw.write([123, 45, null], writeTypeId: true); expect(bw.toBytes(), [FrameValueType.listT, ...bytes(bd)]); }); + + test('int set', () { + final bd = ByteData(20) + ..setUint32(0, 2, Endian.little) + ..setFloat64(4, 123, Endian.little) + ..setFloat64(12, 45, Endian.little); + + var bw = getWriter(); + bw.write({123, 45}, writeTypeId: false); + expect(bw.toBytes(), bytes(bd)); + + bw = getWriter(); + bw.write({123, 45}, writeTypeId: true); + expect(bw.toBytes(), [FrameValueType.intSetT, ...bytes(bd)]); + }); + + test('double set', () { + final bd = ByteData(20) + ..setUint32(0, 2, Endian.little) + ..setFloat64(4, 123.456, Endian.little) + ..setFloat64(12, 456.321, Endian.little); + + var bw = getWriter(); + bw.write({123.456, 456.321}, writeTypeId: false); + expect(bw.toBytes(), bytes(bd)); + + bw = getWriter(); + bw.write({123.456, 456.321}, writeTypeId: true); + expect(bw.toBytes(), [FrameValueType.doubleSetT, ...bytes(bd)]); + }); + + test('bool set', () { + final bd = ByteData(6) + ..setUint32(0, 2, Endian.little) + ..setUint8(4, 0) + ..setUint8(5, 1); + + var bw = getWriter(); + bw.write({false, true}, writeTypeId: false); + expect(bw.toBytes(), bytes(bd)); + + bw = getWriter(); + bw.write({false, true}, writeTypeId: true); + expect(bw.toBytes(), [FrameValueType.boolSetT, ...bytes(bd)]); + }); + + test('string set', () { + var bw = getWriter(); + bw.write({'h', 'hi'}, writeTypeId: false); + expect(bw.toBytes(), [ + 2, 0, 0, 0, // + 1, 0, 0, 0, 0x68, // + 2, 0, 0, 0, 0x68, 0x69, // + ]); + + bw = getWriter(); + bw.write({'h', 'hi'}, writeTypeId: true); + expect(bw.toBytes(), [ + FrameValueType.stringSetT, 2, 0, 0, 0, // + 1, 0, 0, 0, 0x68, // + 2, 0, 0, 0, 0x68, 0x69, // + ]); + }); + + test('set with null', () { + final bd = ByteData(23) + ..setUint32(0, 3, Endian.little) + ..setUint8(4, FrameValueType.intT) + ..setFloat64(5, 123, Endian.little) + ..setUint8(13, FrameValueType.intT) + ..setFloat64(14, 45, Endian.little) + ..setUint8(22, FrameValueType.nullT); + + var bw = getWriter(); + bw.write({123, 45, null}, writeTypeId: false); + expect(bw.toBytes(), bytes(bd)); + + bw = getWriter(); + bw.write({123, 45, null}, writeTypeId: true); + expect(bw.toBytes(), [FrameValueType.setT, ...bytes(bd)]); + }); }); }); }