public void CloseUploadSessionCleansUpUploadSession() { // Set up a file to upload to. var fileVer = new Mock <FileVer>(); fileVer.SetupGet(m => m.ID).Returns(12345); fileVer.SetupGet(m => m.Version).Returns(1); // Set up the vault object file operations mock. var vaultObjectFileOperationsMock = new Mock <VaultObjectFileOperations>(); // When CancelFileDownloadSession is called, ensure that the correct data is passed. vaultObjectFileOperationsMock .Setup(m => m.CloseUploadSession ( Moq.It.IsAny <int>() )) .Callback((int sessionId) => { Assert.AreEqual(12345, sessionId); }) .Verifiable(); // Set up the mock vault. var vaultMock = new Mock <Vault>(); vaultMock .SetupGet(m => m.ObjectFileOperations) .Returns(vaultObjectFileOperationsMock.Object); // Create the stream. var stream = new FileUploadStreamProxy(fileVer.Object, new ObjID(), vaultMock.Object, false); // Set up the session. stream.UploadSessionId = 12345; // Close the session. stream.Close(); // Ensure that the session is empty. Assert.IsNull(stream.UploadSessionId); // Ensure we got hit as expected. vaultMock.Verify(); vaultObjectFileOperationsMock.Verify(); }
public void WriteOpensUploadSessionIfNotOpen() { // Set up a file to upload to. var fileVerMock = new Mock <FileVer>(); fileVerMock.SetupGet(m => m.ID).Returns(12345); fileVerMock.SetupGet(m => m.Version).Returns(1); // Set up the vault object file operations mock. var vaultObjectFileOperationsMock = new Mock <VaultObjectFileOperations>(); // When UploadFileBlockBegin is called, return a dummy session. vaultObjectFileOperationsMock .Setup(m => m.UploadFileBlockBegin ( )) .Returns(() => 1) .Verifiable(); // Set up the mock vault. var vaultMock = new Mock <Vault>(); vaultMock .SetupGet(m => m.ObjectFileOperations) .Returns(vaultObjectFileOperationsMock.Object); // Create the stream. var stream = new FileUploadStreamProxy(fileVerMock.Object, new ObjID(), vaultMock.Object); Assert.IsNull(stream.UploadSessionId); // Attempt to write. byte[] data = new byte[4096]; stream.Write(data, 0, 4096); // Ensure that the session is not empty. Assert.IsNotNull(stream.UploadSessionId); // Ensure we got hit as expected. vaultMock.Verify(); vaultObjectFileOperationsMock.Verify(); }