コード例 #1
0
        public void TestReadProgressStream()
        {
            const int streamSize = 26543;
            const int bufferSize = 4096;
            const int readSize   = 3000;
            long      bytesRead  = 0;

            using (var memoryStream = new LargeMemoryStream(new byte[streamSize]))
            {
                using (var progressStream = new ReadProgressStream(memoryStream))
                {
                    var eventFired = false;
                    progressStream.ProgressChanged += (sender, args) => eventFired = true;

                    var buffer = new byte[bufferSize];
                    while (bytesRead < memoryStream.Length)
                    {
                        eventFired = false;
                        bytesRead += progressStream.Read(buffer, 0, readSize);
                        var progress = 100 * bytesRead / (double)streamSize;
                        Assert.AreEqual(progress, progressStream.ProgressPercent, 0.01);
                        Assert.IsTrue(eventFired);
                    }

                    Assert.AreEqual(100, progressStream.ProgressPercent, 0.01);
                }
            }
        }
コード例 #2
0
		public void TestReadProgressStream()
		{
			const int streamSize = 26543;
			const int bufferSize = 4096;
			const int readSize = 3000;
			long bytesRead = 0;

			using (var memoryStream = new LargeMemoryStream(new byte[streamSize]))
			{
				using (var progressStream = new ReadProgressStream(memoryStream))
				{
					var eventFired = false;
					progressStream.ProgressChanged += (sender, args) => eventFired = true;

					var buffer = new byte[bufferSize];
					while (bytesRead < memoryStream.Length)
					{
						eventFired = false;
						bytesRead += progressStream.Read(buffer, 0, readSize);
						var progress = 100*bytesRead / (double)streamSize;
						Assert.AreEqual(progress, progressStream.ProgressPercent, 0.01);
						Assert.IsTrue(eventFired);
					}

					Assert.AreEqual(100, progressStream.ProgressPercent, 0.01);
				}
			}
		}