示例#1
0
        public void TestAssertEqualWhenEqual()
        {
            if (Directory.Exists(EqualDir))
            {
                Directory.Delete(EqualDir, true);
            }

            Assert.IsFalse(Directory.Exists(EqualDir));
            DirectoryExt.CopyContents(ReferenceDir, EqualDir);
            AssertDirectory.AreEqual(ReferenceDir, EqualDir, true);
        }
示例#2
0
        public void TestAssertEqualWhenDirectoryMissing()
        {
            if (Directory.Exists(MissingDirectoryDir))
            {
                Directory.Delete(MissingDirectoryDir, true);
            }

            Assert.IsFalse(Directory.Exists(MissingDirectoryDir));
            DirectoryExt.CopyContents(ReferenceDir, MissingDirectoryDir);
            var dirToDelete = Path.Combine(MissingDirectoryDir, "SubDir2");

            Directory.Delete(dirToDelete, true);
            Assert.Throws <AssertionException>(() => AssertDirectory.AreEqual(ReferenceDir, MissingDirectoryDir, true));
        }
示例#3
0
        public void TestAssertEqualsWhenFileMissing()
        {
            if (Directory.Exists(MissingFileDir))
            {
                Directory.Delete(MissingFileDir, true);
            }

            Assert.IsFalse(Directory.Exists(MissingFileDir));
            DirectoryExt.CopyContents(ReferenceDir, MissingFileDir);
            var fileToDelete = Path.Combine(MissingFileDir, "SubDir1", "nunit.core.interfaces.dll");

            File.Delete(fileToDelete);
            Assert.Throws <AssertionException>(() => AssertDirectory.AreEqual(ReferenceDir, MissingFileDir, true));
        }
示例#4
0
        public void TestDirectoryIsCreatedIfMissing()
        {
            const string newDirName = "NewLogDir";

            if (Directory.Exists(newDirName))
            {
                Directory.Delete(newDirName, true);
            }

            // Disable as we need to create the instance to see the directory created but don't need it after that
            // ReSharper disable once UnusedVariable
            var fileLogger = new FileLogger("testLogger", newDirName);

            AssertDirectory.Exists(newDirName);
        }
示例#5
0
        public void TestAssertEqualWhenAdditionalFile()
        {
            if (Directory.Exists(AdditionalFileDir))
            {
                Directory.Delete(AdditionalFileDir, true);
            }

            Assert.IsFalse(Directory.Exists(AdditionalFileDir));
            DirectoryExt.CopyContents(ReferenceDir, AdditionalFileDir);
            var fileToCopy  = Path.Combine(AdditionalFileDir, "AssemblyInfo.txt");
            var newFilename = Path.Combine(AdditionalFileDir, "NewFile.txt");

            File.Copy(fileToCopy, newFilename);

            Assert.Throws <AssertionException>(() => AssertDirectory.AreEqual(ReferenceDir, AdditionalFileDir, true));
        }
示例#6
0
        public void TestAssertEqualWhenMismatchedFile()
        {
            if (Directory.Exists(MismatchedFileDir))
            {
                Directory.Delete(MismatchedFileDir, true);
            }

            Assert.IsFalse(Directory.Exists(MismatchedFileDir));
            DirectoryExt.CopyContents(ReferenceDir, MismatchedFileDir);
            var filenameToModify = Path.Combine(MismatchedFileDir, "AssemblyInfo.txt");
            var contents         = File.ReadAllText(filenameToModify);

            contents = contents + Environment.NewLine + "HELLO" + Environment.NewLine + contents;
            File.Delete(filenameToModify);
            File.WriteAllText(filenameToModify, contents);

            Assert.Throws <AssertionException>(() => AssertDirectory.AreEqual(ReferenceDir, MismatchedFileDir, true));
        }
示例#7
0
        public void TestOldFilesAreCleanedUp()
        {
            const string newDirName = "CleanUpLogDir";

            if (Directory.Exists(newDirName))
            {
                Directory.Delete(newDirName, true);
            }


            Directory.CreateDirectory(newDirName);
            AssertDirectory.Exists(newDirName);
            var retentionPeriod  = new TimeSpan(7, 0, 0, 0);
            var loggerDate       = DateTime.Now;
            var firstOldFile     = string.Format("{0}-0.log.txt", loggerDate.ToString("yyyy-MM-dd HH-mm"));
            var firstOldFilePath = Path.Combine(newDirName, firstOldFile);
            var fileStream       = File.Create(firstOldFilePath);

            fileStream.Close();
            var fileInfo = new FileInfo(firstOldFilePath);

            fileInfo.LastWriteTime = loggerDate.Subtract(retentionPeriod).Subtract(new TimeSpan(0, 0, 0, 1)); // one second older than cutoff

            var secondOldFile     = string.Format("{0}-1.log.txt", loggerDate.ToString("yyyy-MM-dd HH-mm"));
            var secondOldFilePath = Path.Combine(newDirName, secondOldFile);

            fileStream = File.Create(secondOldFilePath);
            fileStream.Close();
            fileInfo = new FileInfo(secondOldFilePath);
            fileInfo.LastWriteTime = loggerDate.Subtract(retentionPeriod).Add(new TimeSpan(0, 0, 0, 1)); // one second newer than cutoff

            var fileLogger = new FileLogger("testLogger", newDirName);

            fileLogger.TimeProvider    = new FixedTimeProvider(loggerDate);
            fileLogger.RetentionPeriod = retentionPeriod;
            fileLogger.Open();
            fileLogger.Dispose();

            // Check the first one is gone and the second one is still there
            AssertFile.DoesNotExist(firstOldFilePath);
            AssertFile.Exists(secondOldFilePath);
        }