public void ClosesFileStreamToEnsureChangesAreCommittedToDisk() { bool fileStreamDisposed = false; var fileStream = new StubStream { OnDispose = disposing => fileStreamDisposed = true }; var file = new StubPlatformFile { OnOpen = () => fileStream }; var folder = new StubPlatformFolder { OnCreateFile = fileName => file }; var provider = new StubApplicationFolderProvider { OnGetApplicationFolder = () => folder }; var storage = new TransmissionStorage(provider); storage.Enqueue(() => new StubTransmission()); Assert.True(fileStreamDisposed); }
public void ClosesFileStreamToEnsureFileCanBeDeleted() { bool fileStreamDisposed = false; var fileStream = new StubStream { OnDispose = disposing => fileStreamDisposed = true }; StubPlatformFile file = CreateFile("TestFile" + TransmissionStorage.TransmissionFileExtension, fileStream); bool fileStreamDisposedBeforeDeletion = false; file.OnDelete = () => fileStreamDisposedBeforeDeletion = fileStreamDisposed; StubPlatformFolder folder = CreateFolder(file); var provider = new StubApplicationFolderProvider { OnGetApplicationFolder = () => folder }; var storage = new TransmissionStorage(provider); storage.Dequeue(); Assert.True(fileStreamDisposedBeforeDeletion); }
public void SavesTransmissionToTheNewlyCreatedFile() { string writtenContents = null; StubStream fileStream = new StubStream(); fileStream.OnDispose = disposing => { writtenContents = Encoding.UTF8.GetString(fileStream.ToArray()); }; var file = new StubPlatformFile { OnOpen = () => fileStream }; var folder = new StubPlatformFolder { OnCreateFile = fileName => file }; var provider = new StubApplicationFolderProvider { OnGetApplicationFolder = () => folder }; var storage = new TransmissionStorage(provider); byte[] contents = Encoding.UTF8.GetBytes(Path.GetRandomFileName()); var transmission = new StubTransmission(contents); storage.Enqueue(() => transmission); string encodedContent = writtenContents.Split(Environment.NewLine.ToCharArray()).Last(); Assert.Equal(contents, Convert.FromBase64String(encodedContent)); }