コード例 #1
0
        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);
        }