public void Inner_Stream_Calls_CanSeek(bool canSeek) {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            mockStream.SetupGet(s => s.CanWrite).Returns(canSeek);

            bool actualCanSeek = progressStream.CanWrite;

            mockStream.Verify(s => s.CanWrite, Times.Once);

            Assert.Equal(canSeek, actualCanSeek);
        }
        public void Inner_Stream_Calls_Length(long length) {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            mockStream.SetupGet(s => s.Length).Returns(length);

            long actualLength = progressStream.Length;

            mockStream.Verify(s => s.Length, Times.Once);

            Assert.Equal(length, actualLength);
        }
Beispiel #3
0
        public override int Run(string[] remainingArguments) {
            var config = Program.CabinetConfigStore.GetConfig(configName);
            var cabinet = Program.CabinetFactory.GetCabinet(config);

            Console.WriteLine($"Starting download {key}...");

            Nito.AsyncEx.AsyncContext.Run(async () => {
                using(var writeStream = File.OpenWrite(filePath)) {
                    using(var readStream = await cabinet.OpenReadStreamAsync(key)) {
                        long? length = readStream.TryGetStreamLength();
                        var progressStream = new ProgressStream(key, writeStream, length, new ConsoleProgress());
                        await readStream.CopyToAsync(progressStream);
                    }
                }
            });

            Console.WriteLine();
            Console.WriteLine($"Completed downloading {key} to {filePath}");

            return 0;
        }
        public void Inner_Stream_Calls_Position(long position) {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            mockStream.SetupGet(s => s.Position).Returns(position);

            long actualPosition = progressStream.Position;

            mockStream.Verify(s => s.Position, Times.Once);

            Assert.Equal(position, actualPosition);
        }
        public void Inner_Stream_Calls_Dispose(bool disposeStream) {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var mockProgress = new Mock<IProgress<IWriteProgress>>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, mockProgress.Object, disposeStream);

            progressStream.Dispose();
        }
        public void Inner_Stream_Calls_Write() {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var mockProgress = new Mock<IProgress<IWriteProgress>>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, mockProgress.Object);

            byte[] buffer = new byte[0];
            int offset = 0;
            int count = 0;

            mockProgress.Setup(p => p.Report(It.IsAny<IWriteProgress>()));

            progressStream.Write(buffer, offset, count);

            mockProgress.Verify(p => p.Report(It.IsAny<IWriteProgress>()), Times.Once);
            mockStream.Verify(s => s.Write(buffer, offset, count), Times.Once);
        }
        public void Inner_Stream_Calls_SetLength() {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            long length = 0;

            progressStream.SetLength(length);

            mockStream.Verify(s => s.SetLength(length), Times.Once);
        }
        public void Inner_Stream_Calls_Seek() {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            long offset = 0;
            SeekOrigin origin = SeekOrigin.Begin;

            progressStream.Seek(offset, origin);

            mockStream.Verify(s => s.Seek(offset, origin), Times.Once);
        }
        public void Inner_Stream_Calls_Read() {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            byte[] buffer = new byte[0];
            int offset = 0;
            int count = 0;

            progressStream.Read(buffer, offset, count);

            mockStream.Verify(s => s.Read(buffer, offset, count), Times.Once);
        }
        public void Inner_Stream_Calls_Flush() {
            string key = "test";
            var mockStream = new Mock<Stream>();
            var progressStream = new ProgressStream(key, mockStream.Object, null, null);

            progressStream.Flush();

            mockStream.Verify(s => s.Flush(), Times.Once);
        }