Example #1
0
        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();
        }
Example #2
0
        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();
        }