Add bootstrapping for tests, add praise instead of warning in case of
attribution licenses
This commit is contained in:
@ -7,10 +7,79 @@
|
||||
declare(strict_types = 1);
|
||||
|
||||
use PHPUnit\Framework\TestCase;
|
||||
use PHPUnit\Framework\Attributes\DataProvider;
|
||||
use PHPUnit\Framework\Attributes\CoversClass;
|
||||
use PHPUnit\Framework\Attributes\Small;
|
||||
|
||||
/**
|
||||
* Tests for PUQI.
|
||||
*/
|
||||
#[small]
|
||||
#[CoversClass(\MDPuqi::class)]
|
||||
final class MDPuqiTest extends TestCase {
|
||||
/**
|
||||
* Provider for licenses.
|
||||
*
|
||||
* @return Generator<array{0: string, 1: MDPuqiMessageStatus, 2: bool}>
|
||||
*/
|
||||
public static function licenseProvider():Generator {
|
||||
|
||||
yield 'Empty' => ['', MDPuqiMessageStatus::warning, false];
|
||||
yield 'Open' => ['CC0', MDPuqiMessageStatus::praise, true];
|
||||
yield 'Open Attr' => ['CC BY', MDPuqiMessageStatus::praise, true];
|
||||
yield 'Closed' => ['RR-F', MDPuqiMessageStatus::warning, false];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for license.
|
||||
*
|
||||
* @param string $input Input string.
|
||||
* @param MDPuqiMessageStatus $warningStatus Expected message status.
|
||||
* @param boolean $positive Positive or negative result.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[DataProvider('licenseProvider')]
|
||||
public function testMetadataLicensesResultInExpectedAccessment(string $input, MDPuqiMessageStatus $warningStatus, bool $positive):void {
|
||||
|
||||
$tlLoader = new MDTlLoader("abc", "en");
|
||||
$puqi = new MDPuqi($tlLoader);
|
||||
$puqi->checkMetadataLicense($input);
|
||||
$msgs = $puqi->getMessages();
|
||||
|
||||
self::assertEquals(1, count($msgs));
|
||||
$msg = $msgs[0];
|
||||
|
||||
self::assertEquals($warningStatus, $msg->status);
|
||||
$score = $puqi->getScore();
|
||||
self::assertEquals($positive, $score > 0, "Expected score to be positive or negative, got the oppite result. Score is: " . $score);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test for license.
|
||||
*
|
||||
* @param string $input Input string.
|
||||
* @param MDPuqiMessageStatus $warningStatus Expected message status.
|
||||
* @param boolean $positive Positive or negative result.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[DataProvider('licenseProvider')]
|
||||
public function testImageLicensesResultInExpectedAccessment(string $input, MDPuqiMessageStatus $warningStatus, bool $positive):void {
|
||||
|
||||
$tlLoader = new MDTlLoader("abc", "en");
|
||||
$puqi = new MDPuqi($tlLoader);
|
||||
$puqi->checkImageLicenses([['license' => $input, 'rightsholder' => 'Somebody']]);
|
||||
$msgs = $puqi->getMessages();
|
||||
|
||||
self::assertEquals(1, count($msgs));
|
||||
$msg = $msgs[0];
|
||||
|
||||
self::assertEquals($warningStatus, $msg->status);
|
||||
$score = $puqi->getScore();
|
||||
self::assertEquals($positive, $score > 0, "Expected score to be positive or negative, got the oppite result. Score is: " . $score);
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user