public void FileMemo_AddValidMemoThenAddInvalidMemorForSamePath_MemoIsRemoved() { var testFileName = "~/add-valid-then-add-invalid-dat"; int memo = 42; // just use a bogus memo var memos = new TestFileMemo(); using (StreamUtilities.OpenFileStream(testFileName, memos.Storage)) { Assert.True(memos.AddMemo(testFileName, memo)); Assert.False(memos.AddMemo(testFileName, TestFileMemo.InitialMemoValue)); } }
public void FileMemo_AddMemoOfFileThatIsThenDeletedAndAddedAgain_MemoAddedThenRemoved() { var testFileName = "~/delete-this-test-file.dat"; int memo = 42; // just use a bogus memo var memos = new TestFileMemo(); using (StreamUtilities.OpenFileStream(testFileName, memos.Storage)) { Assert.True(memos.AddMemo(testFileName, memo)); } Assert.False(memos.AddMemo(testFileName, memo)); }
public void FileMemo_AddMemoOfNonexistentFile_MemoNotAdded() { var testFileName = "~/not-a-valid-test-file.dat"; var memos = new TestFileMemo(); Assert.False(memos.AddMemo(testFileName, 42)); }
public void FileMemo_CheckMemoOfAddedFileAfterSizeAndLastWriteTimeChange_MemoNotFound() { var memos = new TestFileMemo(); var testFileName = "~/add-me-check-me-write-more-data-and-change-time.dat"; var file = memos.CreateTestFile(testFileName, 64, 12); var memo = TestFileMemo.ComputeMemoValue(file); Assert.True(memos.AddMemo(testFileName, memo)); var originalLastWriteTime = StreamUtilities.LastFileWriteTimeUtc(testFileName, memos.Storage); Thread.Sleep(1); // ugh... but tests can run fast enough to fail w/ equal timestamps var originalSize = StreamUtilities.FileSize(testFileName, memos.Storage); file.Seek(0, SeekOrigin.End); file.WriteByte(0xFF); Assert.NotEqual(originalSize, StreamUtilities.FileSize(testFileName, memos.Storage)); Assert.NotEqual(originalLastWriteTime, StreamUtilities.LastFileWriteTimeUtc(testFileName, memos.Storage)); var returnedMemo = memo; Assert.False(memos.CheckMemo(testFileName, out returnedMemo)); Assert.Equal(TestFileMemo.InitialMemoValue, returnedMemo); file.Dispose(); file = null; }
public void FileMemo_AddMemoOfValidFile_MemoAdded() { var memos = new TestFileMemo(); var testFileName = "~/test-file.dat"; var file = memos.CreateTestFile(testFileName, 123, 21); var memo = TestFileMemo.ComputeMemoValue(file); Assert.True(memos.AddMemo(testFileName, memo)); file.Dispose(); file = null; }
public void FileMemo_CheckMemoOfAddedFile_GetsCorrectMemo() { var memos = new TestFileMemo(); var testFileName = "~/add-me-check-me.dat"; var file = memos.CreateTestFile(testFileName, 123, 21); var memo = TestFileMemo.ComputeMemoValue(file); Assert.True(memos.AddMemo(testFileName, memo)); var storedMemo = TestFileMemo.InitialMemoValue; Assert.True(memos.CheckMemo(testFileName, out storedMemo)); Assert.Equal(memo, storedMemo); file.Dispose(); file = null; }
public void FileMemo_CheckMemoOfAddedFileAfterRenaming_MemoNotFound() { var memos = new TestFileMemo(); var testFileName = "~/add-me-check-me-rename-me.dat"; var file = memos.CreateTestFile(testFileName, 64, 12); var memo = TestFileMemo.ComputeMemoValue(file); Assert.True(memos.AddMemo(testFileName, memo)); var returnedMemo = memo; Assert.True(memos.CheckMemo(testFileName, out returnedMemo)); var newTestFileName = "~/add-me-check-me-rename-me.dat~"; memos.Storage.Rename(testFileName, newTestFileName); Assert.False(memos.CheckMemo(testFileName, out returnedMemo)); Assert.Equal(TestFileMemo.InitialMemoValue, returnedMemo); file.Dispose(); file = null; }
public void FileMemo_CheckMemoOfAddedFileAfterLastWriteTimeChanges_MemoNotFound() { var memos = new TestFileMemo(); var testFileName = "~/add-me-check-me-change-write-time.dat"; var file = memos.CreateTestFile(testFileName, 64, 12); var memo = TestFileMemo.ComputeMemoValue(file); Assert.True(memos.AddMemo(testFileName, memo)); var originalLastWriteTime = memos.Storage.LastWriteTimeUtc(testFileName); Thread.Sleep(1); // ugh... but tests can run fast enough to fail w/ equal timestamps var newLastWriteTime = DateTime.UtcNow; Assert.NotEqual(originalLastWriteTime, newLastWriteTime); memos.Storage.SetLastWriteTimeUtc(testFileName, newLastWriteTime); var returnedMemo = memo; Assert.False(memos.CheckMemo(testFileName, out returnedMemo)); Assert.Equal(TestFileMemo.InitialMemoValue, returnedMemo); file.Dispose(); file = null; }