From c9a2473fe43ae376b1943df59c6cdbcf40930499 Mon Sep 17 00:00:00 2001 From: xuty <xty50337@hotmail.com> Date: Wed, 5 Jan 2022 00:14:12 +0800 Subject: [PATCH] Add more tests --- lib/src/utils.dart | 7 ++++++- test/minio_test.dart | 4 ++++ test/utils_test.dart | 10 ++++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/src/utils.dart b/lib/src/utils.dart index 0d43fe4..9ab28e9 100644 --- a/lib/src/utils.dart +++ b/lib/src/utils.dart @@ -94,6 +94,8 @@ class MinChunkSize extends StreamTransformerBase<Uint8List, Uint8List> { final int size; + var _yielded = false; + @override Stream<Uint8List> bind(Stream<Uint8List> stream) async* { var buffer = BytesBuilder(copy: false); @@ -106,9 +108,12 @@ class MinChunkSize extends StreamTransformerBase<Uint8List, Uint8List> { } yield buffer.takeBytes(); + _yielded = true; } - yield buffer.takeBytes(); + if (buffer.isNotEmpty || !_yielded) { + yield buffer.takeBytes(); + } } } diff --git a/test/minio_test.dart b/test/minio_test.dart index 7b970c2..2104e21 100644 --- a/test/minio_test.dart +++ b/test/minio_test.dart @@ -684,21 +684,25 @@ void testListObjects() { final minio = getMinioClient(); final bucketName = uniqueName(); final objectName = uniqueName(); + final objectNameUtf8 = uniqueName() + '鏂囦欢銉曘偂銈ゃ儷銆傘劥銋併劥'; final data = Uint8List.fromList([1, 2, 3, 4, 5]); setUpAll(() async { await minio.makeBucket(bucketName); await minio.putObject(bucketName, objectName, Stream.value(data)); + await minio.putObject(bucketName, objectNameUtf8, Stream.value(data)); }); tearDownAll(() async { await minio.removeObject(bucketName, objectName); + await minio.removeObject(bucketName, objectNameUtf8); await minio.removeBucket(bucketName); }); test('succeeds', () async { final result = await minio.listAllObjects(bucketName); expect(result.objects.map((e) => e.key).contains(objectName), isTrue); + expect(result.objects.map((e) => e.key).contains(objectNameUtf8), isTrue); }); test('fails on invalid bucket', () { diff --git a/test/utils_test.dart b/test/utils_test.dart index 03b4bad..7a31100 100644 --- a/test/utils_test.dart +++ b/test/utils_test.dart @@ -80,4 +80,14 @@ void testBlockStream() { ]), ); }); + + test('MinChunkSize with empty stream', () async { + final stream = Stream<Uint8List>.empty().transform(MinChunkSize(5)); + expect(await stream.toList(), equals([Uint8List.fromList([])])); + }); + + test('MinChunkSize with zero length stream', () async { + final stream = Stream.value(Uint8List(0)).transform(MinChunkSize(5)); + expect(await stream.toList(), equals([Uint8List.fromList([])])); + }); } -- GitLab