public void WhenCreate_WithStreamEncodingAndBufferSize_ReturnsWrappedStreamWriter()
        {
            // Arrange
            var factory      = new StreamWriterFactory();
            var memoryStream = new MemoryStreamWrap();

            // Act
            var result = factory.Create(memoryStream, Encoding.UTF8, 123);

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(result.StreamWriterInstance);
            Assert.AreEqual(memoryStream.StreamInstance, result.BaseStream);
        }
        public void Create_ValidParameters_ReturnsWrappedStream()
        {
            // Arrange
            var factory         = new DeflateStreamFactory();
            var memoryStream    = new MemoryStreamWrap();
            var compressionMode = CompressionMode.Compress;

            // Act
            var result = factory.Create(memoryStream, compressionMode);

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(result.DeflateStreamInstance);
        }
        public void Create_WithStreamModeAndEncoding_ReturnsWrappedZipArchive()
        {
            // Arrange
            var factory      = new ZipArchiveFactory();
            var memoryStream = new MemoryStreamWrap();
            var mode         = ZipArchiveMode.Create;

            // Act
            var result = factory.Create(memoryStream, mode, false, Encoding.UTF8);

            // Assert
            Assert.NotNull(result);
            Assert.NotNull(result.Instance);
            Assert.AreEqual(ZipArchiveMode.Create, result.Mode);
        }
Esempio n. 4
0
        private Mock <IFileSystemFacade> CreateMockFileSystem()
        {
            // Set up basic file system operations
            Mock <IFileSystemFacade> mock = new Mock <IFileSystemFacade>(MockBehavior.Strict);

            mock.Setup(x => x.CreateDirectoryIfNotExists(It.IsAny <string>())).Callback(() => {});
            mock.Setup(x => x.FileExists(It.IsAny <string>())).Returns((string filePath) => _mockFileTable.ContainsKey(filePath));

            // Create a mock folder for the mock files
            mock.Setup(x => x.GetFilesInDirectory(It.IsAny <string>())).Returns(
                delegate
            {
                return(_mockFileTable.Values.Select(x => x.Item1.Object));
            });

            // Set up the IO operations for the mock files so it mimics the real thing
            mock.Setup(x => x.CreateTextFile(It.IsAny <string>(), It.IsAny <string>())).Callback(
                delegate(string fileName, string fileContents)
            {
                CreateOrUpdateMockFile(fileName, fileContents);
            });
            mock.Setup(x => x.AppendToTextFile(It.IsAny <string>(), It.IsAny <string>())).Callback(
                delegate(string fileName, string fileContents)
            {
                AppendToMockFile(fileName, fileContents);
            });
            mock.Setup(x => x.ReadTextFile(It.IsAny <string>())).Returns(
                delegate(string fileName)
            {
                return(_mockFileTable[fileName].Item2);
            });
            mock.Setup(x => x.DeleteFileIfExists(It.IsAny <string>())).Callback(
                delegate(string x)
            {
                if (_mockFileTable.ContainsKey(x))
                {
                    _mockFileTable.Remove(x);
                }
            });
            mock.Setup(x => x.GetDirectoryFullPath(It.IsAny <string>())).Returns(
                (string filePath) =>
            {
                var lastSlashPos = filePath.LastIndexOf("\\", StringComparison.Ordinal);
                var lastSegment  = filePath.Substring(lastSlashPos, filePath.Length - lastSlashPos);
                return(lastSegment.LastIndexOf(".", StringComparison.Ordinal) > 0 ? filePath.Substring(0, lastSlashPos) : filePath);
            });
            mock.Setup(x => x.DirectoryExists(It.IsAny <string>())).Returns(
                (string directoryPath) => _mockFileTable.ContainsKey(directoryPath));
            mock.Setup(x => x.CreateFileFromStream(It.IsAny <IStreamReader>(), It.IsAny <string>())).Callback(
                (IStreamReader streamReaderWrap, string filePath) =>
            {
                if (streamReaderWrap == null || streamReaderWrap.BaseStream == null || streamReaderWrap.BaseStream.Length <= 0)
                {
                    return;
                }

                using (var memoryStreamWrap = new MemoryStreamWrap())
                {
                    memoryStreamWrap.CopyFromStream(streamReaderWrap.BaseStream);
                    CreateOrUpdateMockFile(filePath, Convert.ToBase64String(memoryStreamWrap.ToArray()));
                }
            });

            return(mock);
        }