示例#1
0
        public void OnlySelectTempFoldersWithPrefix()
        {
            var factory = new FolderFactory(Substitute.For <INuKeeperLogger>());

            // set up edge cases
            var folder1 = factory.UniqueTemporaryFolder();

            Directory.SetLastWriteTime(folder1.FullPath, DateTime.Now.AddHours(-2));
            var notToToDeletePath = Path.Combine(FolderFactory.NuKeeperTempFilesPath(), "tools");

            Directory.CreateDirectory(notToToDeletePath);
            Directory.SetLastWriteTime(notToToDeletePath, DateTime.Now.AddHours(-2));

            var baseDirInfo = new DirectoryInfo(FolderFactory.NuKeeperTempFilesPath());

            var toDelete = FolderFactory.GetTempDirsToCleanup(baseDirInfo).ToArray();

            Assert.AreEqual(1, toDelete.Length, "Only 1 folder should be marked for deletion");
            Assert.AreEqual(folder1.FullPath, toDelete[0].FullName, "wrong folder marked for deletion");

            folder1.TryDelete();
            if (Directory.Exists(notToToDeletePath))
            {
                Directory.Delete(notToToDeletePath);
            }
        }
示例#2
0
        public void OnlySelectTempFoldersOlderThanOneHour()
        {
            var factory = new FolderFactory(Substitute.For <INuKeeperLogger>());

            // set up edge cases
            var folder1 = factory.UniqueTemporaryFolder();

            Directory.SetLastWriteTime(folder1.FullPath, DateTime.Now.AddHours(-1).AddMinutes(-1));
            var folder2 = factory.UniqueTemporaryFolder();

            Directory.SetLastWriteTime(folder2.FullPath, DateTime.Now.AddHours(-1).AddMinutes(1));

            var baseDirInfo = new DirectoryInfo(FolderFactory.NuKeeperTempFilesPath());

            var toDelete = FolderFactory.GetTempDirsToCleanup(baseDirInfo).ToArray();

            Assert.AreEqual(1, toDelete.Length, "Only 1 folder should be marked for deletion");
            Assert.AreEqual(folder1.FullPath, toDelete[0].FullName, "wrong folder marked for deletion");

            folder1.TryDelete();
            folder2.TryDelete();
        }