private async Task <bool> Mount(string isoFilePath) { var mountResult = await _virtualCloneDrive.MountAsync(isoFilePath); if (mountResult.HasError) { WriteLogMessage(string.Format("There was an error mounting file: {0}.", isoFilePath)); WriteLogMessage(string.Format("ERROR: {0}.", mountResult.ErrorMessage)); return(false); } return(true); }
public async Task MountAsyncWithNonExistingIsoShouldReturnError() { // Arrange var unitLetter = @"F:\"; var vcdMountPath = @"C:\tmp"; var mockDriveInfo = new Mock <IDriveInfo>(); var driveInfo = mockDriveInfo.Object; var mockFileProvider = new Mock <IFileProvider>(); mockFileProvider.Setup(m => m.Exists(It.IsAny <string>())).Returns(false); VirtualCloneDriveWrapper wrapper = new VirtualCloneDriveWrapper(unitLetter, vcdMountPath, 3, 1000, driveInfo, mockFileProvider.Object, null); DeviceEventArgs deviceEventArgs; // Act deviceEventArgs = await wrapper.MountAsync(string.Empty); // Assert Assert.IsTrue(deviceEventArgs.HasError); Assert.IsTrue(deviceEventArgs.ErrorMessage.Contains("doesn't exists or don't have access.")); }
public async Task MountAsyncWithDriveNotReadyShouldReturnError() { // Arrange var unitLetter = @"F:\"; var vcdMountPath = @"C:\tmp"; var mockDriveInfo = new Mock <IDriveInfo>(); var mockFileProvider = new Mock <IFileProvider>(); var mockProcessProvider = new Mock <IProcessProvider>(); mockDriveInfo.Setup(m => m.IsReady).Returns(false); mockFileProvider.Setup(m => m.Exists(It.IsAny <string>())).Returns(true); mockProcessProvider.Setup(m => m.Start(It.IsAny <string>(), It.IsAny <string>())).Returns(new System.Diagnostics.Process()); VirtualCloneDriveWrapper wrapper = new VirtualCloneDriveWrapper(unitLetter, vcdMountPath, 3, 1000, mockDriveInfo.Object, mockFileProvider.Object, mockProcessProvider.Object); DeviceEventArgs deviceEventArgs; // Act deviceEventArgs = await wrapper.MountAsync(@"C:\my-fake-iso.iso"); // Assert Assert.IsTrue(deviceEventArgs.HasError); Assert.IsTrue(deviceEventArgs.ErrorMessage.Contains("There was an error trying to Mount file on device")); }
public async Task MountAsyncShouldCallProcessProviderStart() { // Arrange var unitLetter = @"F:\"; var vcdMountPath = @"C:\tmp"; var mockDriveInfo = new Mock <IDriveInfo>(); var mockFileProvider = new Mock <IFileProvider>(); var mockProcessProvider = new Mock <IProcessProvider>(); mockDriveInfo.Setup(m => m.IsReady).Returns(true); mockFileProvider.Setup(m => m.Exists(It.IsAny <string>())).Returns(true); mockProcessProvider.Setup(m => m.Start(It.IsAny <string>(), It.IsAny <string>())).Returns(new System.Diagnostics.Process()); VirtualCloneDriveWrapper wrapper = new VirtualCloneDriveWrapper(unitLetter, vcdMountPath, 3, 1000, mockDriveInfo.Object, mockFileProvider.Object, mockProcessProvider.Object); DeviceEventArgs deviceEventArgs; // Act deviceEventArgs = await wrapper.MountAsync(@"C:\my-fake-iso.iso"); // Assert Assert.IsFalse(deviceEventArgs.HasError); Assert.AreEqual(string.Empty, deviceEventArgs.ErrorMessage); mockProcessProvider.Verify(m => m.Start(It.IsAny <string>(), It.IsAny <string>()), Times.AtLeastOnce); }