Пример #1
0
        public void NextCheckIsWithinCheckInterval()
        {
            var errorsAndInfos = new ErrorsAndInfos();
            var testRootFolder = TempFolder(true).SubFolder("NextCheckIsWithinCheckInterval");

            Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsToString());
            CopyTemplateTestFileSystemTo(testRootFolder);
            const long ticks   = 1000000000000;
            var        folders = CreateTestFoldersOnTwoMachines(testRootFolder, new DateTime(ticks));
            var        work    = new DualityWork {
                ForMachine = folders[0].MachineId
            };

            work.UpdateFolders(folders);
            var folder = work.DualityFolders[2];

            Assert.IsTrue(folder.NeedsProcessing());
            Assert.AreEqual("", folder.Process());
            Assert.IsFalse(folder.NeedsProcessing());
            var minimum = DateTime.Now.AddTicks(ticks / 2);
            var maximum = DateTime.Now.AddTicks(ticks);

            Assert.IsTrue(folder.NextCheckAt >= minimum);
            Assert.IsTrue(folder.NextCheckAt <= maximum);
        }
Пример #2
0
        public void CanCreateWorkForMachine1()
        {
            var folders = CreateTestFoldersOnTwoMachines(TempFolder(true), new DateTime(0));
            var work    = new DualityWork {
                ForMachine = folders[0].MachineId
            };

            work.UpdateFolders(folders);
            Assert.AreEqual(6, work.DualityFolders.Count);
        }
Пример #3
0
        public void CanDoBasicProcessing()
        {
            var errorsAndInfos = new ErrorsAndInfos();
            var testRootFolder = TempFolder(true).SubFolder("CanDoBasicProcessing");

            Assert.IsFalse(errorsAndInfos.AnyErrors(), errorsAndInfos.ErrorsToString());
            CopyTemplateTestFileSystemTo(testRootFolder);
            var folders = CreateTestFoldersOnTwoMachines(testRootFolder, new DateTime(0));
            var work    = new DualityWork {
                ForMachine = folders[0].MachineId
            };

            work.UpdateFolders(folders);
            var folder = work.DualityFolders[5];

            Assert.AreEqual("", folder.Process());
            Assert.IsTrue(folder.NeedsProcessing());
            var theFileName = testRootFolder.FullName + @"\Machine1\Folder2\H\A_File.txt";

            File.WriteAllText(theFileName, @"This is some text.");
            var timeStamp = new DateTime(2013, 11, 2, 12, 24, 6);

            File.SetLastWriteTime(theFileName, timeStamp);
            var expectedMessage = "There is " + theFileName + ",\r\nbut that file does not exist in " + testRootFolder.FullName + @"\Machine1\OtherFolder2\H\";

            Assert.AreEqual(expectedMessage, folder.Process());
            Assert.IsTrue(folder.NeedsProcessing());
            var theOtherFileName = testRootFolder.FullName + @"\Machine1\OtherFolder2\H\A_File.txt";

            File.WriteAllText(theOtherFileName, @"This is some text.");
            File.SetLastWriteTime(theOtherFileName, new DateTime(2013, 11, 6, 22, 6, 24));
            Assert.AreEqual("", folder.Process());
            Assert.IsTrue(folder.NeedsProcessing());
            Assert.AreEqual(timeStamp, File.GetLastWriteTime(theOtherFileName));
            File.WriteAllText(theOtherFileName, @"This is some text..");
            expectedMessage = "The contents (or last-write-time) of " + theFileName + "\r\ndiffers from the contents (lwt) of " + theOtherFileName;
            Assert.AreEqual(expectedMessage, folder.Process());
            Assert.IsTrue(folder.NeedsProcessing());
            File.WriteAllText(theOtherFileName, @"This is some text.");
            var theRenamedOtherFileName = theOtherFileName.Replace(".txt", ".log");

            File.WriteAllText(theRenamedOtherFileName, @"This is some text.");
            expectedMessage = "There is " + theRenamedOtherFileName + ",\r\nbut that file does not exist in " + testRootFolder.FullName + @"\Machine1\Folder2\H\";
            Assert.AreEqual(expectedMessage, folder.Process());
            Assert.IsTrue(folder.NeedsProcessing());
            File.Delete(theFileName);
            Assert.IsFalse(File.Exists(theFileName));
            File.Delete(theOtherFileName);
            Assert.IsFalse(File.Exists(theOtherFileName));
            File.Delete(theRenamedOtherFileName);
            Assert.IsFalse(File.Exists(theRenamedOtherFileName));
        }
Пример #4
0
        public void CanUpdateWorkForMachine1()
        {
            var folders = CreateTestFoldersOnTwoMachines(TempFolder(true), new DateTime(0));
            var work    = new DualityWork {
                ForMachine = folders[0].MachineId
            };

            work.UpdateFolders(folders);
            Assert.AreEqual(6, work.DualityFolders.Count);
            var timeStamp = new DateTime(2013, 11, 3, 14, 20, 0);

            work.DualityFolders.ForEach(x => x.LastCheckedAt = timeStamp);
            work.UpdateFolders(folders);
            Assert.IsTrue(work.DualityFolders.All(x => x.LastCheckedAt == timeStamp));
        }
Пример #5
0
        public void CanSaveAndLoadWorkForMachine1()
        {
            var folders = CreateTestFoldersOnTwoMachines(TempFolder(true), new DateTime(0));
            var work    = new DualityWork {
                ForMachine = folders[0].MachineId
            };

            work.UpdateFolders(folders);
            var timeStamp = DateTime.Now;

            work.DualityFolders[0].LastCheckedAt = timeStamp;
            var fileName = TempFolder(false).FullName + @"\CanSaveAndLoadWorkForMachine1.xml";

            File.Delete(fileName);
            Assert.IsFalse(File.Exists(fileName));
            work.Save(fileName);
            var work2 = new DualityWork(fileName, folders[0].MachineId);

            Assert.AreEqual((object)work.DualityFolders.Count, work2.DualityFolders.Count);
            Assert.AreEqual(timeStamp, work.DualityFolders[0].LastCheckedAt);
            File.Delete(fileName);
            Assert.IsFalse(File.Exists(fileName));
        }