예제 #1
0
		public void TestRead()
		{
			using ( var target = new ByteArraySegmentStream( CreateData() ) )
			{
				byte[] buffer = new byte[ 2 ];
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 2 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 12, 13 } ) );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 2 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 14, 22 } ) );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 2 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 23, 24 } ) );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 2 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 32, 33 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 1 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 34, 0 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 0 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 0, 0 } ) );
			}

			using ( var target = new ByteArraySegmentStream( CreateData() ) )
			{
				byte[] buffer = new byte[ 3 ];
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 3 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 12, 13, 14 } ) );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 3 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 22, 23, 24 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 3 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 32, 33, 34 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 0 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 0, 0, 0 } ) );
			}

			using ( var target = new ByteArraySegmentStream( CreateData() ) )
			{
				byte[] buffer = new byte[ 4 ];
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 4 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 12, 13, 14, 22 } ) );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 4 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 23, 24, 32, 33 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 1 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 34, 0, 0, 0 } ) );
				Array.Clear( buffer, 0, buffer.Length );
				Assert.That( target.Read( buffer, 0, buffer.Length ), Is.EqualTo( 0 ) );
				Assert.That( buffer, Is.EqualTo( new byte[] { 0, 0, 0, 0 } ) );
			}
		}
        public void TestRead()
        {
            using (var target = new ByteArraySegmentStream(CreateData()))
            {
                byte[] buffer = new byte[2];
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(2));
                Assert.That(buffer, Is.EqualTo(new byte[] { 12, 13 }));
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(2));
                Assert.That(buffer, Is.EqualTo(new byte[] { 14, 22 }));
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(2));
                Assert.That(buffer, Is.EqualTo(new byte[] { 23, 24 }));
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(2));
                Assert.That(buffer, Is.EqualTo(new byte[] { 32, 33 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(1));
                Assert.That(buffer, Is.EqualTo(new byte[] { 34, 0 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(0));
                Assert.That(buffer, Is.EqualTo(new byte[] { 0, 0 }));
            }

            using (var target = new ByteArraySegmentStream(CreateData()))
            {
                byte[] buffer = new byte[3];
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(3));
                Assert.That(buffer, Is.EqualTo(new byte[] { 12, 13, 14 }));
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(3));
                Assert.That(buffer, Is.EqualTo(new byte[] { 22, 23, 24 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(3));
                Assert.That(buffer, Is.EqualTo(new byte[] { 32, 33, 34 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(0));
                Assert.That(buffer, Is.EqualTo(new byte[] { 0, 0, 0 }));
            }

            using (var target = new ByteArraySegmentStream(CreateData()))
            {
                byte[] buffer = new byte[4];
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(4));
                Assert.That(buffer, Is.EqualTo(new byte[] { 12, 13, 14, 22 }));
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(4));
                Assert.That(buffer, Is.EqualTo(new byte[] { 23, 24, 32, 33 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(1));
                Assert.That(buffer, Is.EqualTo(new byte[] { 34, 0, 0, 0 }));
                Array.Clear(buffer, 0, buffer.Length);
                Assert.That(target.Read(buffer, 0, buffer.Length), Is.EqualTo(0));
                Assert.That(buffer, Is.EqualTo(new byte[] { 0, 0, 0, 0 }));
            }
        }