Example #1
0
        private string InitFilePath(string filePath)
        {
            if (!_isShadowCopy)
            {
                return(filePath);
            }
            var gen    = new DefaultPathNameGenerator(postfix: ".xlsx");
            var util   = new DefaultTempUtil(fileNameGen: gen);
            var result = util.CreateFile();

            using (var fs = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                using (var ws = new FileStream(result, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    var read   = 0L;
                    var buffer = new byte[4096];
                    while (read < fs.Length)
                    {
                        var currentRead = fs.Read(buffer, 0, buffer.Length);
                        read += currentRead;
                        if (currentRead != 0)
                        {
                            ws.Write(buffer, 0, currentRead);
                        }
                    }
                }
            }

            return(result);
        }
Example #2
0
        public void DefaultTempFolderExists()
        {
            var tempProvider = new DefaultTempUtil();
            var tempPath     = tempProvider.GetTempDirectory();

            Assert.True(Directory.Exists(tempPath));

            var filenameGen = new DefaultPathNameGenerator();

            filenameGen.Generate(tempPath);
        }
Example #3
0
        public void TestTAbleAccess()
        {
            var tfp      = new DefaultTempUtil();
            var fileName = "";

            tfp.UseFile(tempFile =>
            {
                fileName   = tempFile;
                var server = SQLiteServer.FromPath(tempFile);
                var db     = server.OpenDatabase("main");
                var tables = db.ListTables();
            });
            Assert.True(!File.Exists(fileName));
        }
Example #4
0
        public void TempFolderAllowsFileCreateAndDelete()
        {
            var tempUtil = new DefaultTempUtil();
            var tempPath = tempUtil.GetTempDirectory();

            var filenameGen = new DefaultPathNameGenerator();
            var filePath    = filenameGen.Generate(tempPath);

            Assert.False(File.Exists(filePath));
            new DefaultFileUtil().Touch(filePath);
            Assert.True(File.Exists(filePath));
            File.Delete(filePath);
            Assert.False(File.Exists(filePath));
        }
Example #5
0
        public void TempFolderAllowsFolderCreateAndDelete()
        {
            var tempUtil = new DefaultTempUtil();
            var tempPath = tempUtil.GetTempDirectory();

            var filenameGen = new DefaultPathNameGenerator();
            var folderPath  = filenameGen.Generate(tempPath);

            Assert.False(Directory.Exists(folderPath));
            Directory.CreateDirectory(folderPath);
            Assert.True(Directory.Exists(folderPath));
            Directory.Delete(folderPath);
            Assert.False(Directory.Exists(folderPath));
        }
        public void BasicLoremIpsumGeneratorToFileTest()
        {
            var random = new DefaultRandom(12345);
            var gen    = new LoremIpsumGenerator(random);

            var tmp = new DefaultTempUtil();

            tmp.UseFile(tempFile =>
            {
                using (var writer = new StreamWriter(tempFile))
                    gen.WriteText(10, writer);
                var fileContents = File.ReadAllText(tempFile);
                Assert.Equal("lorem ipsum dolor sit amet stet kasd gubergren tempor ipsum", fileContents);
            });
        }
Example #7
0
        public void TempFilesWithCustomExtension()
        {
            var nameGenerator = new DefaultPathNameGenerator(postfix: ".txt");
            var tmp           = new DefaultTempUtil(fileNameGen: nameGenerator);

            var tempFilePathCopy = "";

            tmp.UseFile(tempFilePath =>
            {
                tempFilePathCopy = tempFilePath;
                var fi           = new FileInfo(tempFilePath);
                Assert.True(fi.Exists);
                Assert.Equal(0, fi.Length);
                Assert.EndsWith(".txt", tempFilePath);
            });
            Assert.False(File.Exists(tempFilePathCopy));
        }
Example #8
0
        public void TestDatabaseAccess()
        {
            var tfp      = new DefaultTempUtil();
            var fileName = "";

            tfp.UseFile(tempFile =>
            {
                fileName         = tempFile;
                var server       = SQLiteServer.FromPath(tempFile);
                var allDatabases = server.ListDatabases();

                Assert.StartsWith("3", server.Version);
                Assert.Single(allDatabases);
                var db       = allDatabases[0];
                var settings = db.Settings as SQLiteDatabaseSettings ?? throw new InvalidOperationException("settings must be sqlite");
                Assert.Equal("main", db.Name);
                Assert.Equal(tempFile, settings.Path);
            });
            Assert.True(!File.Exists(fileName));
        }
Example #9
0
        public void BasicTest()
        {
            var tmp          = new DefaultTempUtil();
            var tempDirPath  = "";
            var tempDirPath2 = "";

            tmp.UseDir(tempDir1 =>
            {
                tempDirPath = tempDir1;
                Assert.True(Directory.Exists(tempDir1));
                tmp.UseDir(tempDir1, tempDir2 =>
                {
                    tempDirPath2 = tempDir2;
                    Assert.True(Directory.Exists(tempDir2));
                    Assert.Equal(tempDir1, Path.GetDirectoryName(tempDirPath2));
                });
                Assert.False(Directory.Exists(tempDirPath2));
            });
            Assert.False(Directory.Exists(tempDirPath));
        }