Skip to content
Snippets Groups Projects
Commit 3fa11bd4 authored by Robin Appelman's avatar Robin Appelman
Browse files

Dont use exceptions for the backgroundjob test cases

parent 4f4ad724
No related branches found
No related tags found
No related merge requests found
......@@ -9,8 +9,17 @@
namespace Test\BackgroundJob;
class TestQueuedJob extends \OC\BackgroundJob\QueuedJob {
private $testCase;
/**
* @param QueuedJob $testCase
*/
public function __construct($testCase) {
$this->testCase = $testCase;
}
public function run($argument) {
throw new JobRun(); //throw an exception so we can detect if this function is called
$this->testCase->markRun();
}
}
......@@ -24,19 +33,22 @@ class QueuedJob extends \PHPUnit_Framework_TestCase {
*/
private $job;
private $jobRun = false;
public function markRun() {
$this->jobRun = true;
}
public function setup() {
$this->jobList = new DummyJobList();
$this->job = new TestQueuedJob();
$this->job = new TestQueuedJob($this);
$this->jobList->add($this->job);
$this->jobRun = false;
}
public function testJobShouldBeRemoved() {
try {
$this->assertTrue($this->jobList->has($this->job, null));
$this->job->execute($this->jobList);
$this->fail("job should have been run");
} catch (JobRun $e) {
$this->assertFalse($this->jobList->has($this->job, null));
}
$this->assertTrue($this->jobList->has($this->job, null));
$this->job->execute($this->jobList);
$this->assertTrue($this->jobRun);
}
}
......@@ -9,12 +9,18 @@
namespace Test\BackgroundJob;
class TestTimedJob extends \OC\BackgroundJob\TimedJob {
public function __construct() {
private $testCase;
/**
* @param TimedJob $testCase
*/
public function __construct($testCase) {
$this->setInterval(10);
$this->testCase = $testCase;
}
public function run($argument) {
throw new JobRun(); //throw an exception so we can detect if this function is called
$this->testCase->markRun();
}
}
......@@ -28,44 +34,37 @@ class TimedJob extends \PHPUnit_Framework_TestCase {
*/
private $job;
private $jobRun = false;
public function markRun() {
$this->jobRun = true;
}
public function setup() {
$this->jobList = new DummyJobList();
$this->job = new TestTimedJob();
$this->job = new TestTimedJob($this);
$this->jobList->add($this->job);
$this->jobRun = false;
}
public function testShouldRunAfterInterval() {
$this->job->setLastRun(time() - 12);
try {
$this->job->execute($this->jobList);
$this->fail("job should have run");
} catch (JobRun $e) {
}
$this->assertTrue(true);
$this->job->execute($this->jobList);
$this->assertTrue($this->jobRun);
}
public function testShouldNotRunWithinInterval() {
$this->job->setLastRun(time() - 5);
try {
$this->job->execute($this->jobList);
} catch (JobRun $e) {
$this->fail("job should not have run");
}
$this->assertTrue(true);
$this->job->execute($this->jobList);
$this->assertFalse($this->jobRun);
}
public function testShouldNotTwice() {
$this->job->setLastRun(time() - 15);
try {
$this->job->execute($this->jobList);
$this->fail("job should have run the first time");
} catch (JobRun $e) {
try {
$this->job->execute($this->jobList);
} catch (JobRun $e) {
$this->fail("job should not have run the second time");
}
}
$this->assertTrue(true);
$this->job->execute($this->jobList);
$this->assertTrue($this->jobRun);
$this->jobRun = false;
$this->job->execute($this->jobList);
$this->assertFalse($this->jobRun);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment