summaryrefslogtreecommitdiff
path: root/www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php')
-rw-r--r--www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php63
1 files changed, 63 insertions, 0 deletions
diff --git a/www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php b/www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php
new file mode 100644
index 00000000..bf8603dd
--- /dev/null
+++ b/www/wiki/tests/phpunit/includes/jobqueue/JobQueueMemoryTest.php
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * @covers JobQueueMemory
+ *
+ * @group JobQueue
+ *
+ * @license GNU GPL v2+
+ * @author Thiemo Kreuz
+ */
+class JobQueueMemoryTest extends PHPUnit\Framework\TestCase {
+
+ use MediaWikiCoversValidator;
+
+ /**
+ * @return JobQueueMemory
+ */
+ private function newJobQueue() {
+ return JobQueue::factory( [
+ 'class' => JobQueueMemory::class,
+ 'wiki' => wfWikiID(),
+ 'type' => 'null',
+ ] );
+ }
+
+ private function newJobSpecification() {
+ return new JobSpecification(
+ 'null',
+ [ 'customParameter' => null ],
+ [],
+ Title::newFromText( 'Custom title' )
+ );
+ }
+
+ public function testGetAllQueuedJobs() {
+ $queue = $this->newJobQueue();
+ $this->assertCount( 0, $queue->getAllQueuedJobs() );
+
+ $queue->push( $this->newJobSpecification() );
+ $this->assertCount( 1, $queue->getAllQueuedJobs() );
+ }
+
+ public function testGetAllAcquiredJobs() {
+ $queue = $this->newJobQueue();
+ $this->assertCount( 0, $queue->getAllAcquiredJobs() );
+
+ $queue->push( $this->newJobSpecification() );
+ $this->assertCount( 0, $queue->getAllAcquiredJobs() );
+
+ $queue->pop();
+ $this->assertCount( 1, $queue->getAllAcquiredJobs() );
+ }
+
+ public function testJobFromSpecInternal() {
+ $queue = $this->newJobQueue();
+ $job = $queue->jobFromSpecInternal( $this->newJobSpecification() );
+ $this->assertInstanceOf( Job::class, $job );
+ $this->assertSame( 'null', $job->getType() );
+ $this->assertArrayHasKey( 'customParameter', $job->getParams() );
+ $this->assertSame( 'Custom title', $job->getTitle()->getText() );
+ }
+
+}