public IPuzzleSolverTask Create(
     Action<int, IImmutableList<InternalRow>> onSolutionFound,
     Action<int> onNoSolutionFound,
     Action<int, IImmutableList<InternalRow>> onSearchStep)
 {
     PuzzleSolverTask = new MockPuzzleSolverTask(onSolutionFound, onNoSolutionFound, onSearchStep);
     return PuzzleSolverTask;
 }
 public void SetUp()
 {
     _mockBoardControl = new Mock<IBoardControl>();
     _mockPuzzleSolverTaskFactory = new MockPuzzleSolverTaskFactory();
     _mockTimer = new MockTimer();
     _vm = new MainWindowViewModel(
         _mockBoardControl.Object,
         _mockPuzzleSolverTaskFactory,
         _mockTimer);
     _vm.LoadedCommand.Execute(null);
     _mockPuzzleSolverTask = _mockPuzzleSolverTaskFactory.PuzzleSolverTask;
 }