diff options
author | Robin Appelman <icewind@owncloud.com> | 2013-12-05 13:29:35 +0100 |
---|---|---|
committer | Robin Appelman <icewind@owncloud.com> | 2013-12-05 13:29:35 +0100 |
commit | 2ff1bdaba3292cc5baff71d8d79674bbf0b69fc8 (patch) | |
tree | 1371ad4330c2e7bc14ddbdfec1886d5121105b0a /tests/lib | |
parent | 3fa11bd426bbb68c02bd98519c7f0f1451257dc7 (diff) | |
download | nextcloud-server-2ff1bdaba3292cc5baff71d8d79674bbf0b69fc8.tar.gz nextcloud-server-2ff1bdaba3292cc5baff71d8d79674bbf0b69fc8.zip |
add test case for removing background jobs that are throwing exceptions
Diffstat (limited to 'tests/lib')
-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; + } +} |