2019-10-02 14:26:41 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
/**
|
2024-02-16 18:04:47 +00:00
|
|
|
* @covers \JobSpecification
|
2019-10-02 14:26:41 +00:00
|
|
|
*/
|
|
|
|
|
class JobSpecificationTest extends MediaWikiUnitTestCase {
|
|
|
|
|
private const JOB_TYPE = 'testJob';
|
|
|
|
|
private const JOB_PARAMS = [ 'param' => 'value' ];
|
|
|
|
|
|
|
|
|
|
/**
|
2024-02-16 18:04:47 +00:00
|
|
|
* @covers \JobSpecification::ignoreDuplicates
|
2019-10-02 14:26:41 +00:00
|
|
|
*/
|
|
|
|
|
public function testNotRemoveDuplicates() {
|
|
|
|
|
$jobSpec = new JobSpecification(
|
|
|
|
|
self::JOB_TYPE,
|
|
|
|
|
self::JOB_PARAMS
|
|
|
|
|
);
|
|
|
|
|
$this->assertFalse( $jobSpec->ignoreDuplicates(),
|
|
|
|
|
'Must not be deduplicated if removeDuplicates not set' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-02-16 18:04:47 +00:00
|
|
|
* @covers \JobSpecification::ignoreDuplicates
|
2019-10-02 14:26:41 +00:00
|
|
|
*/
|
|
|
|
|
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' );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-02-16 18:04:47 +00:00
|
|
|
* @covers \JobSpecification::getDeduplicationInfo
|
2019-10-02 14:26:41 +00:00
|
|
|
*/
|
|
|
|
|
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()
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2024-02-16 18:04:47 +00:00
|
|
|
* @covers \JobSpecification::getDeduplicationInfo
|
2019-10-02 14:26:41 +00:00
|
|
|
*/
|
|
|
|
|
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()
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|