コード例 #1
0
        public async Task TestDeleteDirectoryOperation()
        {
            var directoryServiceMock = new Mock <IDirectoryService>();

            directoryServiceMock
            .Setup(m => m.RemoveRecursively(SourceName))
            .Verifiable();
            var filesServiceMock = new Mock <IFileService>();
            var pathServiceMock  = new Mock <IPathService>();

            var operationsFactory = new OperationsFactory(
                _taskPool,
                directoryServiceMock.Object,
                filesServiceMock.Object,
                pathServiceMock.Object,
                _fileNameGenerationService);
            var deleteOperation = operationsFactory.CreateDeleteOperation(
                new UnaryFileSystemOperationSettings(new[] { SourceName }, new string[] {}, SourceName));

            Assert.Equal(OperationState.NotStarted, deleteOperation.State);

            var callbackCalled = false;

            deleteOperation.StateChanged += (sender, args) => callbackCalled = true;

            await deleteOperation.RunAsync();

            Assert.Equal(OperationState.Finished, deleteOperation.State);

            Assert.True(callbackCalled);
            directoryServiceMock.Verify(m => m.RemoveRecursively(SourceName), Times.Once());
        }
コード例 #2
0
        public async Task TestDeleteFileOperation(bool throws, OperationState state)
        {
            var directoryServiceMock = new Mock <IDirectoryService>();
            var filesServiceMock     = new Mock <IFileService>();
            var removeSetup          = filesServiceMock
                                       .Setup(m => m.Remove(SourceName));

            if (throws)
            {
                removeSetup.Throws(new AccessViolationException()).Verifiable();
            }
            else
            {
                removeSetup.Verifiable();
            }
            var pathServiceMock = new Mock <IPathService>();

            var operationsFactory = new OperationsFactory(
                _taskPool,
                directoryServiceMock.Object,
                filesServiceMock.Object,
                pathServiceMock.Object,
                _fileNameGenerationService);
            var deleteOperation = operationsFactory.CreateDeleteOperation(
                new UnaryFileSystemOperationSettings(new string[] {}, new[] { SourceName }, SourceName));

            Assert.Equal(OperationState.NotStarted, deleteOperation.State);
            var callbackCalled = false;

            deleteOperation.StateChanged += (sender, args) => callbackCalled = true;

            await deleteOperation.RunAsync();

            Assert.Equal(state, deleteOperation.State);

            Assert.True(callbackCalled);
            filesServiceMock.Verify(m => m.Remove(SourceName), Times.Once());
        }