Ejemplo n.º 1
0
        public void CachingStreamReadsEntireBookTest()
        {
            const int bufferSize = 4096;

            using (var sourceStream = TestHelpers.GetResourceStream(ResourceName))
            {
                using (var cachingStream = new CachingStream(sourceStream))
                {
                    using (var notcachingStream = TestHelpers.GetResourceStream(ResourceName))
                    {
                        while (true)
                        {
                            var bufferedTempBuffer    = new byte[bufferSize];
                            var notBufferedTempBuffer = new byte[bufferSize];

                            var bytesReadFromcachingStream     = cachingStream.Read(bufferedTempBuffer, 0, bufferedTempBuffer.Length);
                            var bytesReadFromNiotcachingStream = notcachingStream.Read(notBufferedTempBuffer, 0,
                                                                                       notBufferedTempBuffer.Length);

                            Assert.AreEqual(bytesReadFromcachingStream, bytesReadFromNiotcachingStream);
                            Assert.IsTrue(bufferedTempBuffer.SequenceEqual(notBufferedTempBuffer));

                            if (bytesReadFromcachingStream == 0)
                            {
                                break;
                            }
                        }

                        Assert.AreEqual(cachingStream.Length, notcachingStream.Length);
                        Assert.AreEqual(cachingStream.Position, notcachingStream.Position);
                    }
                }
            }
        }
        public void SeekAndReadAfterEnd(int position)
        {
            var data = GenerateData(1000);

            using (var memoryStream = new MemoryStream(data, writable: false))
                using (var cachingStream = new CachingStream(memoryStream, Ownership.Owns))
                {
                    cachingStream.Position = position;
                    byte[] buffer = new byte[10];
                    Assert.AreEqual(0, cachingStream.Read(buffer, 0, buffer.Length));
                }
        }
        public void Dispose()
        {
            var data = GenerateData(1000);

            using (var memoryStream = new MemoryStream(data, writable: false))
                using (var cachingStream = new CachingStream(memoryStream, Ownership.Owns))
                {
                    cachingStream.Dispose();

                    Assert.Throws <ObjectDisposedException>(() => { cachingStream.Flush(); });
                    Assert.Throws <ObjectDisposedException>(() => { var temp = cachingStream.Length; });
                    Assert.Throws <ObjectDisposedException>(() => { var temp = cachingStream.Position; });
                    Assert.Throws <ObjectDisposedException>(() => { cachingStream.Position = 1; });
                    Assert.Throws <ObjectDisposedException>(() => cachingStream.ReadByte());
                    Assert.Throws <ObjectDisposedException>(() => cachingStream.Read(new byte[10], 0, 1));
                    Assert.Throws <ObjectDisposedException>(() => cachingStream.Seek(1, SeekOrigin.Begin));
                }
        }
Ejemplo n.º 4
0
        public void CachingStreamSeeksCurrentTest()
        {
            using (var stream = TestHelpers.GetResourceStream(ResourceName))
            {
                using (var cachingStream = new CachingStream(stream))
                {
                    var tempBuffer = new byte[100];
                    var bytesRead  = cachingStream.Read(tempBuffer, 0, tempBuffer.Length);
                    Assert.AreEqual(tempBuffer.Length, bytesRead);

                    var position = cachingStream.Position;
                    Assert.AreEqual(position, cachingStream.Seek(0, SeekOrigin.Current));

                    position = cachingStream.Position;
                    Assert.AreEqual(position + 100, cachingStream.Seek(100, SeekOrigin.Current));

                    position = cachingStream.Position;
                    Assert.AreEqual(position - 55, cachingStream.Seek(-55, SeekOrigin.Current));
                }
            }
        }
Ejemplo n.º 5
0
		public void SeekCurrent()
		{
			using (var stream = GetResourceStream(ResourceName))
			{
				using (var bufferedStream = new CachingStream(stream))
				{
					var tempBuffer = new byte[100];
					var bytesRead = bufferedStream.Read(tempBuffer, 0, tempBuffer.Length);
					Assert.AreEqual(tempBuffer.Length, bytesRead);

					var position = bufferedStream.Position;
					Assert.AreEqual(position, bufferedStream.Seek(0, SeekOrigin.Current));

					position = bufferedStream.Position;
					Assert.AreEqual(position + 100, bufferedStream.Seek(100, SeekOrigin.Current));

					position = bufferedStream.Position;
					Assert.AreEqual(position - 55, bufferedStream.Seek(-55, SeekOrigin.Current));
				}
			}
		}
Ejemplo n.º 6
0
		public void ReadEntireBook()
		{
			const int bufferSize = 4096;

			using (var sourceStream = GetResourceStream(ResourceName))
			{
				using (var bufferedStream = new CachingStream(sourceStream))
				{
					using (var notBufferedStream = GetResourceStream(ResourceName))
					{
						while (true)
						{
							var bufferedTempBuffer = new byte[bufferSize];
							var notBufferedTempBuffer = new byte[bufferSize];

							var bytesReadFromBufferedStream = bufferedStream.Read(bufferedTempBuffer, 0, bufferedTempBuffer.Length);
							var bytesReadFromNiotBufferedStream = notBufferedStream.Read(notBufferedTempBuffer, 0,
								notBufferedTempBuffer.Length);

							Assert.AreEqual(bytesReadFromBufferedStream, bytesReadFromNiotBufferedStream);
							Assert.IsTrue(bufferedTempBuffer.SequenceEqual(notBufferedTempBuffer));

							if (bytesReadFromBufferedStream == 0)
							{
								break;
							}
						}

						Assert.AreEqual(bufferedStream.Length, notBufferedStream.Length);
						Assert.AreEqual(bufferedStream.Position, notBufferedStream.Position);
					}
				}
			}
		}