| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- using System;
- using System.IO;
- using Masuit.Tools.Systems;
- using Xunit;
- namespace Masuit.Tools.Abstractions.Test.Systems;
- public class LargeMemoryStreamTests
- {
- [Fact]
- public void CanRead_ShouldReturnTrue()
- {
- var stream = new LargeMemoryStream();
- Assert.True(stream.CanRead);
- }
- [Fact]
- public void CanSeek_ShouldReturnTrue()
- {
- var stream = new LargeMemoryStream();
- Assert.True(stream.CanSeek);
- }
- [Fact]
- public void CanWrite_ShouldReturnTrue()
- {
- var stream = new LargeMemoryStream();
- Assert.True(stream.CanWrite);
- }
- [Fact]
- public void Length_ShouldReturnZeroInitially()
- {
- var stream = new LargeMemoryStream();
- Assert.Equal(0, stream.Length);
- }
- [Fact]
- public void Position_ShouldReturnZeroInitially()
- {
- var stream = new LargeMemoryStream();
- Assert.Equal(0, stream.Position);
- }
- [Fact]
- public void Position_SetValidValue_ShouldUpdatePosition()
- {
- var stream = new LargeMemoryStream();
- stream.SetLength(100);
- stream.Position = 50;
- Assert.Equal(50, stream.Position);
- }
- [Fact]
- public void Position_SetInvalidValue_ShouldThrowException()
- {
- var stream = new LargeMemoryStream();
- Assert.Throws<InvalidOperationException>(() => stream.Position = -1);
- Assert.Throws<InvalidOperationException>(() => stream.Position = 1);
- }
- [Fact]
- public void Flush_ShouldNotThrowException()
- {
- var stream = new LargeMemoryStream();
- stream.Flush();
- }
- [Fact]
- public void Read_ShouldReturnCorrectData()
- {
- var stream = new LargeMemoryStream();
- var buffer = new byte[100];
- for (int i = 0; i < buffer.Length; i++)
- {
- buffer[i] = (byte)i;
- }
- stream.Write(buffer, 0, buffer.Length);
- stream.Position = 0;
- var readBuffer = new byte[100];
- int bytesRead = stream.Read(readBuffer, 0, readBuffer.Length);
- Assert.Equal(buffer.Length, bytesRead);
- Assert.Equal(buffer, readBuffer);
- }
- [Fact]
- public void Seek_ShouldUpdatePositionCorrectly()
- {
- var stream = new LargeMemoryStream();
- stream.SetLength(100);
- stream.Seek(50, SeekOrigin.Begin);
- Assert.Equal(50, stream.Position);
- stream.Seek(10, SeekOrigin.Current);
- Assert.Equal(60, stream.Position);
- }
- [Fact]
- public void SetLength_ShouldUpdateLengthCorrectly()
- {
- var stream = new LargeMemoryStream();
- stream.SetLength(100);
- Assert.Equal(100, stream.Length);
- stream.SetLength(50);
- Assert.Equal(50, stream.Length);
- }
- [Fact]
- public void Write_ShouldWriteDataCorrectly()
- {
- var stream = new LargeMemoryStream();
- var buffer = new byte[100];
- for (int i = 0; i < buffer.Length; i++)
- {
- buffer[i] = (byte)i;
- }
- stream.Write(buffer, 0, buffer.Length);
- stream.Position = 0;
- var readBuffer = new byte[100];
- int bytesRead = stream.Read(readBuffer, 0, readBuffer.Length);
- Assert.Equal(buffer.Length, bytesRead);
- Assert.Equal(buffer, readBuffer);
- }
- [Fact]
- public void Dispose_ShouldDisposeCorrectly()
- {
- var stream = new LargeMemoryStream();
- stream.Dispose();
- Assert.Throws<ObjectDisposedException>(() => stream.Write(new byte[1], 0, 1));
- }
- }
|