CleanupTestFolder() public static method

public static CleanupTestFolder ( ) : void
return void
Beispiel #1
0
        public void WriteUniqueTimedFile_automatically_numbers_files()
        {
            TestHelper.CleanupTestFolder();

            DateTime      now     = DateTime.UtcNow;
            var           content = Encoding.UTF8.GetBytes(String.Format("Clash @{0}...", now));
            string        prefix  = Path.Combine(TestHelper.TestFolder, "Clash ");
            List <string> files   = new List <string>();

            for (int i = 0; i < 10; ++i)
            {
                files.Add(FileUtil.WriteUniqueTimedFile(prefix, String.Empty, now, content, true, 6));
            }
            Assert.That(files.Count, Is.EqualTo(10));
            Assert.That(files.All(f => f.StartsWith(prefix)));
            Assert.That(files.All(f => File.Exists(f)));
            Assert.That(files[1], Is.EqualTo(files[0] + "(1)"));
            Assert.That(files[2], Is.EqualTo(files[0] + "(2)"));
            Assert.That(files[3], Is.EqualTo(files[0] + "(3)"));
            Assert.That(files[4], Is.EqualTo(files[0] + "(4)"));
            Assert.That(files[5], Is.EqualTo(files[0] + "(5)"));
            Assert.That(files[6], Is.EqualTo(files[0] + "(6)"));
            for (int i = 7; i < 10; ++i)
            {
                Assert.That(files[i].Length, Is.EqualTo(files[0].Length + 1 + 22), "Ends with Url compliant Base64 GUID.");
            }
            Assert.That(files.SequenceEqual(files.Distinct()));
        }
Beispiel #2
0
        public void CheckForWriteAccess_is_immediately_true_when_file_does_not_exist_or_is_writeable()
        {
            Assert.Throws <ArgumentNullException>(() => FileUtil.CheckForWriteAccess(null, 0));
            TestHelper.CleanupTestFolder();
            string path = Path.Combine(TestHelper.TestFolder, "Locked.txt");

            Assert.That(FileUtil.CheckForWriteAccess(path, 0), Is.True, "If the file does not exist, it is writeable.");
            File.WriteAllText(path, "Locked");
            Assert.That(FileUtil.CheckForWriteAccess(path, 0), Is.True, "The is writeable: no need to wait.");
        }
Beispiel #3
0
        public void CreateUniqueTimedFolder_simple_test()
        {
            TestHelper.CleanupTestFolder();
            DateTime now    = DateTime.UtcNow;
            var      prefix = Path.Combine(TestHelper.TestFolder, "F/Simple/F-");
            var      f1     = FileUtil.CreateUniqueTimedFolder(prefix, String.Empty, now);
            var      f2     = FileUtil.CreateUniqueTimedFolder(prefix, String.Empty, now);

            f1.Should().NotBe(f2);
            Directory.Exists(f1).Should().BeTrue();
            Directory.Exists(f2).Should().BeTrue();
        }
Beispiel #4
0
        public void WriteUniqueTimedFile_clash_never_happen()
        {
            TestHelper.CleanupTestFolder();
            DateTime now    = DateTime.UtcNow;
            string   prefix = Path.Combine(TestHelper.TestFolder, "Clash ");
            var      files  = new string[100];

            Parallel.ForEach(Enumerable.Range(0, 100), i =>
            {
                files[i] = FileUtil.WriteUniqueTimedFile(prefix, String.Empty, now, null, false, 0);
            });
            files.Should().NotContainNulls();
            files.Should().OnlyContain(f => f.StartsWith(prefix));
            files.Should().OnlyContain(f => File.Exists(f));
            var winner = files.MaxBy(f => - f.Length);

            files.Where(f => f.Length == winner.Length + 1 + 22).Should().HaveCount(99, "Ends with Url compliant Base64 GUID.");
        }
Beispiel #5
0
        public void CheckForWriteAccess_is_not_exact_but_works(int lockTimeMilliSecond, int nbMaxMilliSecond, bool result)
        {
            TestHelper.CleanupTestFolder();
            string path      = Path.Combine(TestHelper.TestFolder, "Locked.txt");
            object startLock = new object();

            Task.Factory.StartNew(() =>
            {
                using (FileStream fs = File.OpenWrite(path))
                {
                    Thread.Sleep(2);
                    lock (startLock) Monitor.Pulse(startLock);
                    Thread.Sleep(lockTimeMilliSecond);
                }
            });
            lock (startLock) Monitor.Wait(startLock);
            Assert.That(FileUtil.CheckForWriteAccess(path, nbMaxMilliSecond), Is.EqualTo(result));
            TestHelper.CleanupTestFolder();
        }
Beispiel #6
0
        public void CreateUniqueTimedFolder_clash_never_happen()
        {
            TestHelper.CleanupTestFolder();
            DateTime now      = DateTime.UtcNow;
            var      prefixes = new[] {
                Path.Combine(TestHelper.TestFolder, "F-Clash/FA"),
                Path.Combine(TestHelper.TestFolder, "F-Clash/FB"),
                Path.Combine(TestHelper.TestFolder, "F-Clash/FA/F1")
            };
            var folders = new string[100];

            Parallel.ForEach(Enumerable.Range(0, 100), i =>
            {
                folders[i] = FileUtil.CreateUniqueTimedFolder(prefixes[i % 3], String.Empty, now);
            });
            folders.Should().NotContainNulls();
            folders.Should().OnlyContain(f => f.StartsWith(prefixes[0]) || f.StartsWith(prefixes[1]) || f.StartsWith(prefixes[2]));
            folders.Should().OnlyContain(f => Directory.Exists(f));
        }
Beispiel #7
0
        public void WriteUniqueTimedFile_clash_never_happen()
        {
            TestHelper.CleanupTestFolder();
            DateTime      now    = DateTime.UtcNow;
            string        prefix = Path.Combine(TestHelper.TestFolder, "Clash ");
            List <string> files  = new List <string>();

            for (int i = 0; i < 10; ++i)
            {
                files.Add(FileUtil.WriteUniqueTimedFile(prefix, String.Empty, now, null, false, 0));
            }
            Assert.That(files.Count, Is.EqualTo(10));
            Assert.That(files.All(f => f.StartsWith(prefix)));
            Assert.That(files.All(f => File.Exists(f)));
            for (int i = 1; i < 10; ++i)
            {
                Assert.That(files[i].Length, Is.EqualTo(files[0].Length + 1 + 22), "Ends with Url compliant Base64 GUID.");
            }
            Assert.That(files.SequenceEqual(files.Distinct()));
        }
Beispiel #8
0
        public void test_CopyDirectory_helper()
        {
            TestHelper.CleanupTestFolder();
            DirectoryInfo copyDir = new DirectoryInfo(Path.Combine(TestHelper.TestFolder, "Cpy"));
            DirectoryInfo testDir = new DirectoryInfo(Path.Combine(TestHelper.TestFolder, "Src"));

            copyDir.Create();
            testDir.Create();

            CleanupDir(copyDir.FullName);

            CreateFiles(testDir.FullName, "azerty.png");
            CreateHiddenFiles(testDir.FullName, "hiddenAzerty.gif");

            FileUtil.CopyDirectory(testDir, copyDir);
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png", "hiddenAzerty.gif");

            Assert.Throws <IOException>(() => FileUtil.CopyDirectory(testDir, copyDir));

            CleanupDir(copyDir.FullName);

            FileUtil.CopyDirectory(testDir, copyDir, false);
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png");

            CleanupDir(copyDir.FullName);

            DirectoryInfo recursiveDir = Directory.CreateDirectory(testDir.FullName + @"\recDir");

            CreateFiles(recursiveDir.FullName, "REC.png");
            CreateHiddenFiles(recursiveDir.FullName, "hiddenREC.gif");

            FileUtil.CopyDirectory(testDir, copyDir);
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(recursiveDir.FullName, Directory.GetFiles(recursiveDir.FullName), "REC.png", "hiddenREC.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(Path.Combine(copyDir.FullName, recursiveDir.Name), Directory.GetFiles(Path.Combine(copyDir.FullName, recursiveDir.Name)), "REC.png", "hiddenREC.gif");

            CleanupDir(copyDir.FullName);

            recursiveDir.Attributes = FileAttributes.Directory | FileAttributes.Hidden;

            FileUtil.CopyDirectory(testDir, copyDir, false, false);
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(recursiveDir.FullName, Directory.GetFiles(recursiveDir.FullName), "REC.png", "hiddenREC.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png");
            Assert.That(Directory.Exists(Path.Combine(copyDir.FullName, recursiveDir.Name)), Is.False);

            CleanupDir(copyDir.FullName);

            recursiveDir.Attributes = FileAttributes.Directory | FileAttributes.Hidden;

            FileUtil.CopyDirectory(testDir, copyDir, false, true);
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(recursiveDir.FullName, Directory.GetFiles(recursiveDir.FullName), "REC.png", "hiddenREC.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png");
            AssertContains(Path.Combine(copyDir.FullName, recursiveDir.Name), Directory.GetFiles(Path.Combine(copyDir.FullName, recursiveDir.Name)), "REC.png");

            CleanupDir(copyDir.FullName);

            FileUtil.CopyDirectory(testDir, copyDir, true, true, a => { return(a.Name == "azerty.png"); }, a => { return(a.Name != recursiveDir.Name); });
            AssertContains(testDir.FullName, Directory.GetFiles(testDir.FullName), "azerty.png", "hiddenAzerty.gif");
            AssertContains(recursiveDir.FullName, Directory.GetFiles(recursiveDir.FullName), "REC.png", "hiddenREC.gif");
            AssertContains(copyDir.FullName, Directory.GetFiles(copyDir.FullName), "azerty.png");
            Assert.That(Directory.Exists(Path.Combine(copyDir.FullName, recursiveDir.Name)), Is.False);

            //Exception Test
            Assert.Throws <ArgumentNullException>(() => FileUtil.CopyDirectory(null, testDir));
            Assert.Throws <ArgumentNullException>(() => FileUtil.CopyDirectory(testDir, null));

            TestHelper.CleanupTestFolder();
        }