public async Task TestDeleteOperation() { var directoryServiceMock = new Mock <IDirectoryService>(); var filesServiceMock = new Mock <IFileService>(); filesServiceMock .Setup(m => m.Remove(SourceFile)) .Verifiable(); var pathServiceMock = new Mock <IPathService>(); var operationsFactory = new OperationsFactory( _taskPool, directoryServiceMock.Object, filesServiceMock.Object, pathServiceMock.Object); var deleteOperation = operationsFactory.CreateDeleteFileOperation( new[] { new UnaryFileOperationSettings(SourceFile), }); var callbackCalled = false; deleteOperation.OperationFinished += (sender, args) => callbackCalled = true; await deleteOperation.RunAsync(); Assert.True(callbackCalled); filesServiceMock.Verify(m => m.Remove(SourceFile), Times.Once()); }