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(); storage.Initialize(provider); byte[] contents = Encoding.UTF8.GetBytes(Path.GetRandomFileName()); var transmission = new StubTransmission(contents); storage.Enqueue(() => transmission); string encodedContent = writtenContents.Split(Environment.NewLine.ToCharArray()).Last(); AssertEx.AreEqual(contents, Convert.FromBase64String(encodedContent)); }
public async Task Wraps_Into_VirtualStream_If_Cant_Seek(bool canSeek) { // Arrange var stub = new StubStream(canSeek, AS4Message.Empty.ToStream()); var sut = new ReceiveMessageTransformer(StubConfig.Default); // Act MessagingContext result = await sut.TransformAsync( new ReceivedMessage(stub, Constants.ContentTypes.Soap)); // Assert Assert.True( result.ReceivedMessage.UnderlyingStream is VirtualStream != canSeek, "Incoming stream isn't wrapped in 'VirtualStream'"); }
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 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); }