public void Append() { BlockStream s; byte[] b1 = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; byte[] b2 = new byte[] { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }; byte[] c; //------------------------- s = new BlockStream(); s.Append(new Block(b1)); Assert.Equal(10, s.Length); Assert.Equal(10, s.Position); c = new byte[10]; s.Position = 0; Assert.Equal(10, s.Read(c, 0, 10)); Assert.Equal(b1, c); //------------------------- s = new BlockStream(); s.Write(b1, 0, 10); s.Append(new Block(b2)); Assert.Equal(20, s.Length); Assert.Equal(20, s.Position); c = new byte[20]; s.Position = 0; Assert.Equal(20, s.Read(c, 0, 20)); Assert.Equal(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, c); //------------------------- s = new BlockStream(); s.Append(new Block[] { new Block(b1), new Block(b2) }); Assert.Equal(20, s.Length); Assert.Equal(20, s.Position); c = new byte[20]; s.Position = 0; Assert.Equal(20, s.Read(c, 0, 20)); Assert.Equal(new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, c); }