Skip to content
This repository has been archived by the owner on Jul 2, 2024. It is now read-only.

Update to beta 1 #22

Merged
merged 1 commit into from
Oct 2, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
},
"extra": {
"branch-alias": {
"dev-master": "0.4.x-dev"
"dev-master": "0.4.0-beta1"
}
},
"autoload": {
Expand Down
7 changes: 5 additions & 2 deletions src/SlmQueueSqs/Factory/SqsWorkerControllerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,11 @@ class SqsWorkerControllerFactory implements FactoryInterface
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$worker = $serviceLocator->getServiceLocator()->get('SlmQueueSqs\Worker\SqsWorker');
$manager = $serviceLocator->getServiceLocator()->get('SlmQueue\Queue\QueuePluginManager');
$parentLocator = $serviceLocator->getServiceLocator();

$worker = $parentLocator->get('SlmQueueSqs\Worker\SqsWorker');
$manager = $parentLocator->get('SlmQueue\Queue\QueuePluginManager');

return new SqsWorkerController($worker, $manager);
}
}
8 changes: 5 additions & 3 deletions src/SlmQueueSqs/Worker/SqsWorker.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
use SlmQueue\Job\JobInterface;
use SlmQueue\Queue\QueueInterface;
use SlmQueue\Worker\AbstractWorker;
use SlmQueue\Worker\WorkerEvent;
use SlmQueueSqs\Queue\SqsQueueInterface;

/**
Expand All @@ -19,7 +20,7 @@ class SqsWorker extends AbstractWorker
public function processJob(JobInterface $job, QueueInterface $queue)
{
if (!$queue instanceof SqsQueueInterface) {
return;
return WorkerEvent::JOB_STATUS_UNKNOWN;
}

// In SQS, if an error occurs (exception for instance), the job is automatically reinserted
Expand All @@ -28,10 +29,11 @@ public function processJob(JobInterface $job, QueueInterface $queue)
try {
$job->execute();
$queue->delete($job);
return static::JOB_SUCCESSFUL;

return WorkerEvent::JOB_STATUS_SUCCESS;
} catch (Exception $exception) {
// Do nothing, the job will be reinserted automatically for another try
return static::JOB_RESCHEDULED;
return WorkerEvent::JOB_STATUS_FAILURE_RECOVERABLE;
}
}
}
3 changes: 1 addition & 2 deletions tests/SlmQueueSqsTest/Queue/SqsQueueTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,11 @@

namespace SlmQueueSqsTest\Queue;

use PHPUnit_Framework_TestCase as TestCase;
use Guzzle\Service\Resource\Model as ResourceModel;
use PHPUnit_Framework_TestCase as TestCase;
use SlmQueueSqs\Options\SqsQueueOptions;
use SlmQueueSqs\Queue\SqsQueue;
use SlmQueueSqsTest\Asset;
use Zend\ServiceManager\ServiceManager;

class SqsQueueTest extends TestCase
{
Expand Down
2 changes: 1 addition & 1 deletion tests/SlmQueueSqsTest/Util/ServiceManagerFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@

namespace SlmQueueSqsTest\Util;

use Zend\ServiceManager\ServiceManager;
use Zend\Mvc\Service\ServiceManagerConfig;
use Zend\ServiceManager\ServiceManager;

/**
* Utility used to retrieve a freshly bootstrapped application's service manager
Expand Down
43 changes: 39 additions & 4 deletions tests/SlmQueueSqsTest/Worker/SqsWorkerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,56 @@
namespace SlmQueueSqsTest\Worker;

use PHPUnit_Framework_TestCase as TestCase;
use SlmQueue\Options\WorkerOptions;
use SlmQueue\Worker\WorkerEvent;
use SlmQueueSqs\Worker\SqsWorker;

class SqsWorkerTest extends TestCase
{
public function testAssertJobIsDeletedIfNoExceptionIsThrown()
/**
* @var SqsWorker
*/
protected $worker;

public function setUp()
{
$this->worker = new SqsWorker($this->getMock('Zend\EventManager\EventManagerInterface'));
}

public function testReturnsUnknownIfNotASqsQueue()
{
$queue = $this->getMock('SlmQueue\Queue\QueueInterface');
$job = $this->getMock('SlmQueue\Job\JobInterface');

$this->assertEquals(WorkerEvent::JOB_STATUS_UNKNOWN, $this->worker->processJob($job, $queue));
}

public function testDeleteJobOnSuccess()
{
$queue = $this->getMock('SlmQueueSqs\Queue\SqsQueueInterface');
$job = $this->getMock('SlmQueue\Job\JobInterface');

$job->expects($this->once())->method('execute');
$queue->expects($this->once())->method('delete')->with($job);

$worker = new SqsWorker(new WorkerOptions());
$status = $this->worker->processJob($job, $queue);

$worker->processJob($job, $queue);
$this->assertEquals(WorkerEvent::JOB_STATUS_SUCCESS, $status);
}

public function testDoNotDeleteJobOnFailure()
{
$queue = $this->getMock('SlmQueueSqs\Queue\SqsQueueInterface');
$job = $this->getMock('SlmQueue\Job\JobInterface');

$job->expects($this->once())
->method('execute')
->will($this->throwException(new \RuntimeException()));

$queue->expects($this->never())->method('delete');

$status = $this->worker->processJob($job, $queue);

$this->assertEquals(WorkerEvent::JOB_STATUS_FAILURE_RECOVERABLE, $status);
}

}