public void SaveRestorePositionTest1() { MemoryStream memoryStream = new MemoryStream(); using (FileEncodingOutputStream stream = CreateFileEncodingOutputStream(memoryStream)) { IStreamPosition position = stream.SavePosition(); Assert.IsNotNull(position); stream.RestorePosition(position); WriteBitString(stream, "11111111"); Assert.AreEqual(new byte[] { 0xFF }, memoryStream.ToArray()); } }
public void SaveRestorePositionTest2() { MemoryStream memoryStream = new MemoryStream(); using (FileEncodingOutputStream stream = CreateFileEncodingOutputStream(memoryStream)) { IStreamPosition p1 = stream.SavePosition(); WriteBitString(stream, "11111111"); IStreamPosition p2 = stream.SavePosition(); WriteBitString(stream, "00000000"); IStreamPosition p3 = stream.SavePosition(); WriteBitString(stream, "11111111"); IStreamPosition p4 = stream.SavePosition(); stream.RestorePosition(p2); WriteBitString(stream, "10010110"); stream.RestorePosition(p1); WriteBitString(stream, "10011001"); stream.RestorePosition(p4); WriteBitString(stream, "00000001"); stream.RestorePosition(p3); WriteBitString(stream, "00001111"); Assert.AreEqual(new byte[] { 0x99, 0x69, 0xF0, 0x80 }, memoryStream.ToArray()); } }
public void RestorePositionGuardTest() { using (FileEncodingOutputStream stream = CreateFileEncodingOutputStream(new MemoryStream())) { Assert.Throws <ArgumentNullException>(() => stream.RestorePosition(null)); } }