public async Task TestPackOperation(ArchiveType archiveType) { var processorMock = new Mock <IArchiveWriter>(); processorMock .Setup(m => m.PackAsync( It.Is <IReadOnlyList <string> >(l => l.Single() == SourceName), It.IsAny <IReadOnlyList <string> >(), SourceDirName, DestinationName)) .Verifiable(); _autoMocker .Setup <IArchiveProcessorFactory, IArchiveWriter>(m => m.CreateWriter(archiveType)) .Returns(processorMock.Object); var operationsFactory = _autoMocker.CreateInstance <OperationsFactory>(); var settings = new PackOperationSettings( new string[] {}, new[] { SourceName }, DestinationName, SourceDirName, DestinationDirName, archiveType); var operation = operationsFactory.CreatePackOperation(settings); Assert.Equal(OperationState.NotStarted, operation.State); var callbackCalled = false; operation.StateChanged += (sender, args) => callbackCalled = true; await operation.RunAsync(); Assert.Equal(OperationState.Finished, operation.State); Assert.True(callbackCalled); processorMock .Verify(m => m.PackAsync( It.Is <IReadOnlyList <string> >(l => l.Single() == SourceName), It.IsAny <IReadOnlyList <string> >(), SourceDirName, DestinationName), Times.Once); }
public OperationInfo(PackOperationSettings settings) { OperationType = OperationType.Pack; Files = settings.InputTopLevelFiles; Directories = settings.InputTopLevelDirectories; TotalFilesCount = Files.Count; TargetDirectory = settings.TargetDirectory; }
public PackOperation( IArchiveWriter archiveWriter, IDirectoryService directoryService, IPathService pathService, PackOperationSettings settings) { _archiveWriter = archiveWriter; _directoryService = directoryService; _pathService = pathService; _settings = settings; }
public IOperation CreatePackOperation(PackOperationSettings settings) { var archiveWriter = CreateArchiveWriter(settings.ArchiveType); var packOperation = CreatePackOperation(archiveWriter, settings); var operationGroup = CreateOperationGroup(new[] { packOperation }); var operations = CreateOperationsGroupsList(operationGroup); var operationInfo = CreateOperationInfo(settings); var compositeOperation = CreateCompositeOperation(operations, operationInfo); return(CreateOperation(compositeOperation)); }
private static OperationInfo CreateOperationInfo(PackOperationSettings settings) => new OperationInfo(settings);
private IInternalOperation CreatePackOperation(IArchiveWriter archiveWriter, PackOperationSettings settings) => new PackOperation(archiveWriter, _directoryService, _pathService, settings);