function it_should_add_a_gearman_background_job_when_a_job_is_requested($client, JobRequestInterface $jobRequest, $requestSerializer)
 {
     $jobRequest->getName()->willReturn('fooName');
     $requestSerializer->serializeJobRequest($jobRequest)->shouldBeCalled()->willReturn('serializedVersion');
     $client->doBackgroundJob('IceJobBundleGearmanWorker~addDomainJob', 'serializedVersion')->shouldBeCalledTimes(1);
     $this->addJob($jobRequest);
 }
 function it_should_serialize_a_job_request_to_json(JobRequestInterface $jobRequest)
 {
     $jobRequest->getName()->willReturn('fooName');
     $jobRequest->getData()->willReturn(['foo', 'bar']);
     $serialized = $this->serializeJobRequest($jobRequest);
     $serialized->shouldBeString();
     $serialized->shouldBeEqualTo(json_encode(['name' => 'fooName', 'data' => ['foo', 'bar']]));
 }
 function let(WorkerDirectorInterface $workerDirector, JobRequestSerializerInterface $requestSerializer, JobRequestInterface $deserializedJobRequest, WorkerProviderInterface $fooFactory, WorkerInterface $fooWorker, LoggerInterface $logger, EventDispatcherInterface $dispatcher)
 {
     $workerDirector->getWorkerProviderFor('fooName')->willReturn($fooFactory);
     $fooFactory->getWorkerFor('fooName')->willReturn($fooWorker);
     $deserializedJobRequest->getName()->willReturn('fooName');
     $requestSerializer->deserializeJobRequest(Argument::any())->willReturn($deserializedJobRequest);
     $this->beConstructedWith($workerDirector, $requestSerializer);
     //Allow 'good' log calls to be made even if we don't explicitly stub them in the specs
     $logger->debug(Argument::any(), Argument::any())->willReturn(null);
     $logger->info(Argument::any(), Argument::any())->willReturn(null);
     $logger->notice(Argument::any(), Argument::any())->willReturn(null);
 }