static void TestMethod_TestFileOpFileSetWritetime() { var dir = TestUtil.GetTestSubDirectory("right_fndmved", true); var now = DateTime.UtcNow; var future = now.AddMinutes(25); var past = now.AddMinutes(-25); // re-use existing logic for fuzzy time comparison, // in case, say, we're running this test on a FAT drive with imprecise times. var settingsForTimeComparison = new SortFilesSettings(); settingsForTimeComparison.AllowFiletimesDifferForDST = false; settingsForTimeComparison.AllowFiletimesDifferForFAT = true; // set write-time to be the future, and undo. var path = dir + Utils.Sep + "testIntoFuture.txt"; File.WriteAllText(path, "testIntoFuture"); File.SetLastWriteTimeUtc(path, now); var op = new FileOpFileSetWritetime(path, now, future); op.Do(); TestUtil.IsTrue(SortFilesSearchDifferences.AreTimesEqual(future, File.GetLastWriteTimeUtc(path), settingsForTimeComparison)); op.Undo(); TestUtil.IsTrue(SortFilesSearchDifferences.AreTimesEqual(now, File.GetLastWriteTimeUtc(path), settingsForTimeComparison)); path = dir + Utils.Sep + "testIntoPast.txt"; File.WriteAllText(path, "testIntoPast"); File.SetLastWriteTimeUtc(path, now); op = new FileOpFileSetWritetime(path, now, past); op.Do(); TestUtil.IsTrue(SortFilesSearchDifferences.AreTimesEqual(past, File.GetLastWriteTimeUtc(path), settingsForTimeComparison)); op.Undo(); TestUtil.IsTrue(SortFilesSearchDifferences.AreTimesEqual(now, File.GetLastWriteTimeUtc(path), settingsForTimeComparison)); }
static void TestMethod_AreTimesEqual() { var time = DateTime.Now; var timePlus3s = time.AddSeconds(3); var timePlus1hr = time.AddHours(1); // strict compare var settings = new SortFilesSettings(); settings.AllowFiletimesDifferForDST = false; settings.AllowFiletimesDifferForFAT = false; TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, time, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(time, timePlus3s, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(timePlus3s, time, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(time, timePlus1hr, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(timePlus1hr, time, settings)); // allow DST settings.AllowFiletimesDifferForDST = true; TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, time, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(time, timePlus3s, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(timePlus3s, time, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, timePlus1hr, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(timePlus1hr, time, settings)); // allow close settings.AllowFiletimesDifferForFAT = true; TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, time, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, timePlus3s, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(timePlus3s, time, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, timePlus1hr, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(timePlus1hr, time, settings)); // disallow DST settings.AllowFiletimesDifferForDST = false; TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, time, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(time, timePlus3s, settings)); TestUtil.IsEq(true, SortFilesSearchDifferences.AreTimesEqual(timePlus3s, time, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(time, timePlus1hr, settings)); TestUtil.IsEq(false, SortFilesSearchDifferences.AreTimesEqual(timePlus1hr, time, settings)); }