Пример #1
0
    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);
    }
Пример #2
0
 public OperationInfo(PackOperationSettings settings)
 {
     OperationType   = OperationType.Pack;
     Files           = settings.InputTopLevelFiles;
     Directories     = settings.InputTopLevelDirectories;
     TotalFilesCount = Files.Count;
     TargetDirectory = settings.TargetDirectory;
 }
Пример #3
0
 public PackOperation(
     IArchiveWriter archiveWriter,
     IDirectoryService directoryService,
     IPathService pathService,
     PackOperationSettings settings)
 {
     _archiveWriter    = archiveWriter;
     _directoryService = directoryService;
     _pathService      = pathService;
     _settings         = settings;
 }
Пример #4
0
        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));
        }
Пример #5
0
 private static OperationInfo CreateOperationInfo(PackOperationSettings settings) =>
 new OperationInfo(settings);
Пример #6
0
 private IInternalOperation CreatePackOperation(IArchiveWriter archiveWriter,
                                                PackOperationSettings settings) =>
 new PackOperation(archiveWriter, _directoryService, _pathService, settings);