public async Task ExtractAsync(ExtractCommandType commandType, string fullPath) { if (!CheckIfNodeIsArchive(fullPath)) { return; } switch (commandType) { case ExtractCommandType.CurrentDirectory: await _archiveService.ExtractAsync(fullPath); break; case ExtractCommandType.NewDirectory: await _archiveService.ExtractToNewDirectoryAsync(fullPath); break; case ExtractCommandType.SelectDirectory: var directory = await _systemDialogService.GetDirectoryAsync(); if (!string.IsNullOrWhiteSpace(directory)) { await _archiveService.ExtractAsync(fullPath, directory); } break; default: throw new ArgumentOutOfRangeException(nameof(commandType), commandType, null); } }
public async Task TestExtractCommand(bool isArchive, ExtractCommandType command, int extractCallsCount, int extractToNewDirCount, int extractWithDirCallsCount, string directory) { _autoMocker .Setup <IArchiveService, bool>(m => m.CheckIfNodeIsArchive(FullPath)) .Returns(isArchive); _autoMocker .Setup <IArchiveService>(m => m.ExtractAsync(FullPath, null)) .Verifiable(); _autoMocker .Setup <IArchiveService>(m => m.ExtractAsync(FullPath, directory)) .Verifiable(); _autoMocker .Setup <IArchiveService>(m => m.ExtractToNewDirectoryAsync(FullPath)) .Verifiable(); _autoMocker .Setup <ISystemDialogService, Task <string> >(m => m.GetDirectoryAsync(null)) .Returns(Task.FromResult(directory)); var facade = _autoMocker.CreateInstance <FileSystemNodeFacade>(); await facade.ExtractAsync(command, FullPath); _autoMocker .Verify <IArchiveService>(m => m.ExtractAsync(FullPath, null), Times.Exactly(extractCallsCount)); _autoMocker .Verify <IArchiveService>(m => m.ExtractAsync(FullPath, directory), Times.Exactly(extractWithDirCallsCount)); _autoMocker .Verify <IArchiveService>(m => m.ExtractToNewDirectoryAsync(FullPath), Times.Exactly(extractToNewDirCount)); }
public async Task TestExtractCommandThrows() { _autoMocker .Setup <IArchiveService, bool>(m => m.CheckIfNodeIsArchive(FullPath)) .Returns(true); var facade = _autoMocker.CreateInstance <FileSystemNodeFacade>(); const ExtractCommandType command = (ExtractCommandType)42; Task ExtractAsync() => facade.ExtractAsync(command, FullPath); await Assert.ThrowsAsync <ArgumentOutOfRangeException>(ExtractAsync); }
public void TestExtractCommandThrows() { _autoMocker .Setup <IArchiveService, bool>(m => m.CheckIfNodeIsArchive(FullPath)) .Returns(true); var viewModel = _autoMocker.CreateInstance <NodeViewModel>(); viewModel.FullPath = FullPath; const ExtractCommandType command = (ExtractCommandType)42; void ExecuteCommand() => viewModel.ExtractCommand.Execute(command); Assert.Throws <UnhandledErrorException>(ExecuteCommand); }
public void TestExtractCommand(ExtractCommandType command) { _autoMocker .Setup <IFileSystemNodeFacade>(m => m.ExtractAsync(command, FullPath)) .Verifiable(); var viewModel = _autoMocker.CreateInstance <NodeViewModel>(); viewModel.FullPath = FullPath; Assert.True(viewModel.ExtractCommand.CanExecute(command)); viewModel.ExtractCommand.Execute(command); _autoMocker .Verify <IFileSystemNodeFacade>(m => m.ExtractAsync(command, FullPath), Times.Once); }
public void TestExtractCommand(bool isArchive, ExtractCommandType command, int extractCallsCount, int extractToNewDirCount, int extractWithDirCallsCount, string directory) { _autoMocker .Setup <IArchiveService, bool>(m => m.CheckIfNodeIsArchive(FullPath)) .Returns(isArchive); _autoMocker .Setup <IArchiveService>(m => m.ExtractAsync(FullPath, null)) .Verifiable(); _autoMocker .Setup <IArchiveService>(m => m.ExtractAsync(FullPath, directory)) .Verifiable(); _autoMocker .Setup <IArchiveService>(m => m.ExtractToNewDirectoryAsync(FullPath)) .Verifiable(); _autoMocker .Setup <ISystemDialogService, Task <string> >(m => m.GetDirectoryAsync(null)) .Returns(Task.FromResult(directory)); var viewModel = _autoMocker.CreateInstance <NodeViewModel>(); viewModel.FullPath = FullPath; Assert.True(viewModel.ExtractCommand.CanExecute(command)); viewModel.ExtractCommand.Execute(command); _autoMocker .Verify <IArchiveService>(m => m.ExtractAsync(FullPath, null), Times.Exactly(extractCallsCount)); _autoMocker .Verify <IArchiveService>(m => m.ExtractAsync(FullPath, directory), Times.Exactly(extractWithDirCallsCount)); _autoMocker .Verify <IArchiveService>(m => m.ExtractToNewDirectoryAsync(FullPath), Times.Exactly(extractToNewDirCount)); }
private Task ExtractAsync(ExtractCommandType commandType) => _fileSystemNodeFacade.ExtractAsync(commandType, FullPath);