diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-12-05 16:29:35 +0400 |
---|---|---|
committer | Arthur Schiwon <blizzz@owncloud.com> | 2013-12-06 23:58:12 +0400 |
commit | 33144941a9df4b0ac7317d0bd76aeaa0d4f4c751 (patch) | |
tree | 621caa547792c78db8ac7266613d16b908ec352e | |
parent | f309920bef41a85ee78244756d80b385e964ca71 (diff) |
add test case for removing background jobs that are throwing exceptions
-rw-r--r-- | tests/lib/backgroundjob/dummyjoblist.php | 3 | ||||
-rw-r--r-- | tests/lib/backgroundjob/job.php | 59 |
2 files changed, 59 insertions, 3 deletions
diff --git a/tests/lib/backgroundjob/dummyjoblist.php b/tests/lib/backgroundjob/dummyjoblist.php index d91d6b344b5..e1579c273bb 100644 --- a/tests/lib/backgroundjob/dummyjoblist.php +++ b/tests/lib/backgroundjob/dummyjoblist.php @@ -8,9 +8,6 @@ namespace Test\BackgroundJob; -class JobRun extends \Exception { -} - /** * Class DummyJobList * diff --git a/tests/lib/backgroundjob/job.php b/tests/lib/backgroundjob/job.php new file mode 100644 index 00000000000..7d66fa772d2 --- /dev/null +++ b/tests/lib/backgroundjob/job.php @@ -0,0 +1,59 @@ +<?php +/** + * Copyright (c) 2013 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\BackgroundJob; + + +class TestJob extends \OC\BackgroundJob\Job { + private $testCase; + + /** + * @var callable $callback + */ + private $callback; + + /** + * @param Job $testCase + * @param callable $callback + */ + public function __construct($testCase, $callback) { + $this->testCase = $testCase; + $this->callback = $callback; + } + + public function run($argument) { + $this->testCase->markRun(); + $callback = $this->callback; + $callback($argument); + } +} + +class Job extends \PHPUnit_Framework_TestCase { + private $run = false; + + public function setUp() { + $this->run = false; + } + + public function testRemoveAfterException() { + $jobList = new DummyJobList(); + $job = new TestJob($this, function () { + throw new \Exception(); + }); + $jobList->add($job); + + $this->assertCount(1, $jobList->getAll()); + $job->execute($jobList); + $this->assertTrue($this->run); + $this->assertCount(0, $jobList->getAll()); + } + + public function markRun() { + $this->run = true; + } +} |