wiki.techinc.nl/tests/phpunit/unit/includes/jobqueue/JobSpecificationTest.php
Petr Pchelko a738dd647a Return deduplication to CategoryMembershipJob
After I86d26e494924eec24e7b1fb32c424ac1284be478 the job is
no longer instantiated on submission, only upon execution,
so deduplication flags and dedup info are no longer available
to kafka queue.

Bug: T204761
Depends-On: Ieb2604e65177736606aed351c6658b7df748dcee
Change-Id: Ibf95638a2ad218a83347db6749e2e7c9e8dbe0db
2019-10-29 06:10:22 +00:00

65 lines
1.6 KiB
PHP

<?php
/**
* Class JobSpecificationTest
* @covers JobSpecification
*/
class JobSpecificationTest extends MediaWikiUnitTestCase {
private const JOB_TYPE = 'testJob';
private const JOB_PARAMS = [ 'param' => 'value' ];
/**
* @covers JobSpecification::ignoreDuplicates
*/
public function testNotRemoveDuplicates() {
$jobSpec = new JobSpecification(
self::JOB_TYPE,
self::JOB_PARAMS
);
$this->assertFalse( $jobSpec->ignoreDuplicates(),
'Must not be deduplicated if removeDuplicates not set' );
}
/**
* @covers JobSpecification::ignoreDuplicates
*/
public function testRemoveDuplicates() {
$jobSpec = new JobSpecification(
self::JOB_TYPE,
self::JOB_PARAMS,
[ 'removeDuplicates' => true ]
);
$this->assertTrue( $jobSpec->ignoreDuplicates(),
'Must be deduplicated if removeDuplicate is set' );
}
/**
* @covers JobSpecification::getDeduplicationInfo
*/
public function testGetDeduplicationInfo() {
$jobSpec = new JobSpecification(
self::JOB_TYPE,
self::JOB_PARAMS,
[ 'removeDuplicates' => true ]
);
$this->assertEquals(
[ 'type' => self::JOB_TYPE, 'params' => self::JOB_PARAMS ],
$jobSpec->getDeduplicationInfo()
);
}
/**
* @covers JobSpecification::getDeduplicationInfo
*/
public function testGetDeduplicationInfo_ignoreParams() {
$jobSpec = new JobSpecification(
self::JOB_TYPE,
self::JOB_PARAMS + [ 'ignored_param' => 'ignored_value' ],
[ 'removeDuplicates' => true, 'removeDuplicatesIgnoreParams' => [ 'ignored_param' ] ]
);
$this->assertEquals(
[ 'type' => self::JOB_TYPE, 'params' => self::JOB_PARAMS ],
$jobSpec->getDeduplicationInfo()
);
}
}