@@ -16,7 +16,7 @@ public void TwoSimpleByteArraysCanBeCombinedAndSplitAgain()
1616 var arr2 = new byte [ ] { 201 , 202 , 203 } ;
1717
1818 var packedArray = BinaryPacker . Pack ( arr1 , arr2 ) ;
19- var reconstructed = BinaryPacker . Split ( packedArray , pieces : 2 ) ;
19+ var reconstructed = BinaryPacker . Split ( packedArray , expectedPieces : 2 ) ;
2020 reconstructed . Count . ShouldBe ( 2 ) ;
2121 reconstructed [ 0 ] . ShouldBe ( arr1 ) ;
2222 reconstructed [ 1 ] . ShouldBe ( arr2 ) ;
@@ -32,7 +32,7 @@ public void MultipleStringsCanBeMarshalledAndReconstructed()
3232 const string str5 = "|" ;
3333
3434 var packedArray = BinaryPacker . Pack ( str1 . ToUtf8Bytes ( ) , str2 . ToUtf8Bytes ( ) , str3 . ToUtf8Bytes ( ) , str4 . ToUtf8Bytes ( ) , str5 . ToUtf8Bytes ( ) ) ;
35- var reconstructed = BinaryPacker . Split ( packedArray , pieces : 5 ) ;
35+ var reconstructed = BinaryPacker . Split ( packedArray , expectedPieces : 5 ) ;
3636 reconstructed . Count . ShouldBe ( 5 ) ;
3737 reconstructed [ 0 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str1 ) ;
3838 reconstructed [ 1 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str2 ) ;
@@ -47,7 +47,7 @@ public void EmptyStringCanBeMarshalledAndReconstructed()
4747 var empty = Array . Empty < byte > ( ) ;
4848 var combined = BinaryPacker . Pack ( empty ) ;
4949 combined . Length . ShouldNotBe ( 0 ) ;
50- var split = BinaryPacker . Split ( combined , pieces : 1 ) [ 0 ] ;
50+ var split = BinaryPacker . Split ( combined , expectedPieces : 1 ) [ 0 ] ;
5151 split . ShouldBe ( empty ) ;
5252 }
5353
@@ -58,9 +58,48 @@ public void NullCanBeMarshalledAndReconstructed()
5858 var last = new byte [ ] { 200 , 201 } ;
5959 var combined = BinaryPacker . Pack ( first , null , last ) ;
6060
61- var split = BinaryPacker . Split ( combined , pieces : 3 ) ;
61+ var split = BinaryPacker . Split ( combined , expectedPieces : 3 ) ;
6262 split [ 0 ] . ShouldBe ( first ) ;
6363 split [ 1 ] . ShouldBeNull ( ) ;
6464 split [ 2 ] . ShouldBe ( last ) ;
6565 }
66+
67+ [ TestMethod ]
68+ public void MultipleStringsCanBeAppendedToSourceAndAllReconstructed ( )
69+ {
70+ const string str1 = "hello world" ;
71+ const string str2 = "hello universe" ;
72+
73+ var sourceArray = BinaryPacker . Pack ( str1 . ToUtf8Bytes ( ) , str2 . ToUtf8Bytes ( ) ) ;
74+
75+ const string str3 = "testing tester" ;
76+ const string str4 = "" ;
77+ const string str5 = "|" ;
78+
79+ var appended = BinaryPacker . Append ( sourceArray , str3 . ToUtf8Bytes ( ) , str4 . ToUtf8Bytes ( ) , str5 . ToUtf8Bytes ( ) ) ;
80+
81+ var reconstructed = BinaryPacker . Split ( appended , expectedPieces : 5 ) ;
82+ reconstructed . Count . ShouldBe ( 5 ) ;
83+ reconstructed [ 0 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str1 ) ;
84+ reconstructed [ 1 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str2 ) ;
85+ reconstructed [ 2 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str3 ) ;
86+ reconstructed [ 3 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str4 ) ;
87+ reconstructed [ 4 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str5 ) ;
88+ }
89+
90+ [ TestMethod ]
91+ public void NullCanBeAppendedToSourceAndAllReconstructed ( )
92+ {
93+ const string str1 = "hello world" ;
94+ const string str2 = "hello universe" ;
95+
96+ var sourceArray = BinaryPacker . Pack ( str1 . ToUtf8Bytes ( ) , str2 . ToUtf8Bytes ( ) ) ;
97+ var appended = BinaryPacker . Append ( sourceArray , [ null ] ) ;
98+
99+ var reconstructed = BinaryPacker . Split ( appended , expectedPieces : 5 ) ;
100+ reconstructed . Count . ShouldBe ( 3 ) ;
101+ reconstructed [ 0 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str1 ) ;
102+ reconstructed [ 1 ] ! . ToStringFromUtf8Bytes ( ) . ShouldBe ( str2 ) ;
103+ reconstructed [ 2 ] . ShouldBeNull ( ) ;
104+ }
66105}
0 commit comments