Example #1
0
 public void ShrinkPositionStaysAtEnd()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3);
         buffer.Position.Should().Be(3);
         buffer.Length.Should().Be(3);
         buffer.SetLength(2);
         buffer.Position.Should().Be(2);
         buffer.Length.Should().Be(2);
     }
 }
Example #2
0
 public void PositionTest()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         byte[] data = new byte[] { 0xA, 0xB, 0xC };
         buffer.Write(data, 0, data.Length);
         buffer.Position.Should().Be(data.Length);
         for (int i = 0; i < data.Length; i++)
         {
             buffer.Position = i;
             buffer.ReadByte().Should().Be(data[i]);
         }
     }
 }
Example #3
0
 public void SeekSucceeds()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         buffer.Length.Should().Be(0);
         buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3);
         buffer.Length.Should().Be(3);
         buffer.Seek(0, SeekOrigin.Begin);
         buffer.ReadByte().Should().Be(0xA);
         buffer.Seek(-1, SeekOrigin.Current);
         buffer.ReadByte().Should().Be(0xA);
         buffer.Seek(1, SeekOrigin.Current);
         buffer.ReadByte().Should().Be(0xC);
         buffer.Seek(1, SeekOrigin.Begin);
         buffer.ReadByte().Should().Be(0xB);
         buffer.Seek(-2, SeekOrigin.End);
         buffer.ReadByte().Should().Be(0xB);
     }
 }
Example #4
0
 public void AppendTwice()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         buffer.Length.Should().Be(0);
         buffer.Write(new byte[] { 0xA, 0xB, 0xC }, 0, 3);
         buffer.Position.Should().Be(3);
         buffer.Length.Should().Be(3);
         buffer.Position = 0;
         byte[] output = new byte[3];
         buffer.Read(output, 0, 3);
         buffer.Position.Should().Be(3);
         output.ShouldAllBeEquivalentTo(new byte[] { 0xA, 0xB, 0xC });
         buffer.Write(new byte[] { 0xD, 0xE, 0xF }, 0, 3);
         buffer.Position.Should().Be(6);
         buffer.Length.Should().Be(6);
         buffer.Position = 0;
         output = new byte[6];
         buffer.Read(output, 0, 6);
         output.ShouldAllBeEquivalentTo(new byte[] { 0xA, 0xB, 0xC, 0xD, 0xE, 0xF });
     }
 }
Example #5
0
 public void EmptyBufferThrowsOnPositiveCountWrite()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         Action action = () => buffer.Write(new byte[0], 0, 1);
         action.ShouldThrow<ArgumentException>();
     }
 }
Example #6
0
 public void EmptyBufferDoesNotThrowOnPositiveOffsetWriteOfNoCharacters()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         buffer.Write(new byte[0], 1, 0);
     }
 }
Example #7
0
 public void EmptyBufferThrowsOnNegativeOffsetWrite()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         Action action = () => buffer.Write(new byte[0], -1, 0);
         action.ShouldThrow<ArgumentOutOfRangeException>();
     }
 }
Example #8
0
 public void EmptyBufferThrowsOnNullBufferWrite()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         Action action = () => buffer.Write(null, 0, 0);
         action.ShouldThrow<ArgumentNullException>();
     }
 }
Example #9
0
 public void EmptyBufferCanWriteNothing()
 {
     using (StreamBuffer buffer = new StreamBuffer(0))
     {
         buffer.Write(new byte[0], 0, 0);
     }
 }