public function createSupervisor($params = [], $rules = [], $methods = null) { $factory = new SolverFactory(); $factory->define('TestHandler', function () { return $this->createSolver(); })->define('ValidHandler', function () { return $this->createSolver(); }); return $this->getMock(Supervisor::class, $methods, [$factory, $params, $rules]); }