1
1

PooledMemoryStreamTests.cs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Buffers;
  3. using System.IO;
  4. using Masuit.Tools.Systems;
  5. using Xunit;
  6. namespace Masuit.Tools.Abstractions.Test.Systems;
  7. public class PooledMemoryStreamTests
  8. {
  9. [Fact]
  10. public void Constructor_ShouldInitializeWithDefaultArrayPool()
  11. {
  12. using var stream = new PooledMemoryStream();
  13. Assert.NotNull(stream);
  14. Assert.Equal(0, stream.Length);
  15. Assert.Equal(0, stream.Position);
  16. }
  17. [Fact]
  18. public void Constructor_WithBuffer_ShouldInitializeWithBuffer()
  19. {
  20. byte[] buffer = { 1, 2, 3, 4, 5 };
  21. using var stream = new PooledMemoryStream(buffer);
  22. Assert.Equal(buffer.Length, stream.Length);
  23. Assert.Equal(buffer, stream.GetBuffer());
  24. }
  25. [Fact]
  26. public void Read_ShouldReadData()
  27. {
  28. byte[] buffer = { 1, 2, 3, 4, 5 };
  29. using var stream = new PooledMemoryStream(buffer);
  30. byte[] readBuffer = new byte[5];
  31. int bytesRead = stream.Read(readBuffer, 0, 5);
  32. Assert.Equal(5, bytesRead);
  33. Assert.Equal(buffer, readBuffer);
  34. }
  35. [Fact]
  36. public void Write_ShouldWriteData()
  37. {
  38. using var stream = new PooledMemoryStream();
  39. byte[] buffer = { 1, 2, 3, 4, 5 };
  40. stream.Write(buffer, 0, buffer.Length);
  41. Assert.Equal(buffer.Length, stream.Length);
  42. Assert.Equal(buffer, stream.GetBuffer());
  43. }
  44. [Fact]
  45. public void Seek_ShouldChangePosition()
  46. {
  47. using var stream = new PooledMemoryStream();
  48. stream.SetLength(10);
  49. stream.Seek(5, SeekOrigin.Begin);
  50. Assert.Equal(5, stream.Position);
  51. }
  52. [Fact]
  53. public void SetLength_ShouldChangeLength()
  54. {
  55. using var stream = new PooledMemoryStream();
  56. stream.SetLength(10);
  57. Assert.Equal(10, stream.Length);
  58. }
  59. [Fact]
  60. public void GetBuffer_ShouldReturnBuffer()
  61. {
  62. byte[] buffer = { 1, 2, 3, 4, 5 };
  63. using var stream = new PooledMemoryStream(buffer);
  64. byte[] result = stream.GetBuffer();
  65. Assert.Equal(buffer, result);
  66. }
  67. [Fact]
  68. public void ToArray_ShouldReturnArray()
  69. {
  70. byte[] buffer = { 1, 2, 3, 4, 5 };
  71. using var stream = new PooledMemoryStream(buffer);
  72. byte[] result = stream.ToArray();
  73. Assert.Equal(buffer, result);
  74. }
  75. [Fact]
  76. public void WriteTo_ShouldWriteToAnotherStream()
  77. {
  78. byte[] buffer = { 1, 2, 3, 4, 5 };
  79. using var stream = new PooledMemoryStream(buffer);
  80. using var memoryStream = new MemoryStream();
  81. stream.WriteTo(memoryStream);
  82. Assert.Equal(buffer, memoryStream.ToArray());
  83. }
  84. [Fact]
  85. public void Dispose_ShouldDisposeStream()
  86. {
  87. var stream = new PooledMemoryStream();
  88. stream.Dispose();
  89. Assert.Throws<ObjectDisposedException>(() => stream.Write(new byte[1], 0, 1));
  90. }
  91. }