function it_cleans_up_dead_workers(SystemInterface $system, WorkerRegistryInterface $workerRegistry, WorkerInterface $worker, WorkerInterface $deadWorker1, WorkerInterface $deadWorker2, Process $workerProcess, Process $deadWorker1Process, Process $deadWorker2Process) { $system->getCurrentPid()->willReturn(2341); $system->getHostname()->shouldBeCalled()->willReturn('foo1.resque.com'); $workerRegistry->all()->shouldBeCalled()->willReturn(array($worker, $deadWorker1, $deadWorker2)); $worker->getHostname()->shouldBeCalled()->willReturn('foo1.resque.com'); $worker->getProcess()->shouldBeCalled()->willReturn($workerProcess); $workerProcess->getPid()->shouldBeCalled()->willReturn(2341); $deadWorker1->getHostname()->shouldBeCalled()->willReturn('foo1.resque.com'); $deadWorker1->getProcess()->shouldBeCalled()->willReturn($deadWorker1Process); $deadWorker1Process->getPid()->shouldBeCalled()->willReturn('1'); $deadWorker2->getHostname()->shouldBeCalled()->willReturn('foo1.resque.com'); $deadWorker2->getProcess()->shouldBeCalled()->willReturn($deadWorker2Process); $deadWorker2Process->getPid()->shouldBeCalled()->willReturn('2'); $workerRegistry->deregister($deadWorker1)->shouldBeCalled(); $workerRegistry->deregister($deadWorker2)->shouldBeCalled(); $workerRegistry->deregister($worker)->shouldNotBeCalled(); $this->pruneDeadWorkers(); }