Add test for getting actor ID by name with life dates
This commit is contained in:
parent
5192781494
commit
e95415be8f
@ -141,6 +141,34 @@ final class NodaIDGetterTest extends TestCase {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a test actor name and life dates.
|
||||
*
|
||||
* @return array<array{0: string, 1: integer, 2: string, 3: string}>
|
||||
*/
|
||||
public static function persinstByNameAndLifeDatesProvider():array {
|
||||
|
||||
$mysqli = md_noda_mysqli_connect();
|
||||
$result = $mysqli->do_read_query("SELECT `persinst_name_en`, `persinst_id`, `persinst_geburtsjahr`, `persinst_sterbejahr`
|
||||
FROM `persinst`
|
||||
WHERE INSTR(`persinst_name_en`, 'i')
|
||||
AND `persinst_geburtsjahr` != ''
|
||||
AND `persinst_sterbejahr` != ''
|
||||
LIMIT 1");
|
||||
if (!$cur = $result->fetch_row()) {
|
||||
throw new Exception("Error");
|
||||
}
|
||||
$result->close();
|
||||
$mysqli->close();
|
||||
|
||||
return [
|
||||
'Persinst ID by name: ' . implode(' - ', $cur) => [
|
||||
(string)$cur[0], (int)$cur[1], (string)$cur[2], (string)$cur[3]
|
||||
]
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getting persinst by name works.
|
||||
*
|
||||
@ -156,6 +184,25 @@ final class NodaIDGetterTest extends TestCase {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getting persinst by name and life dates works.
|
||||
*
|
||||
* @param string $name Name of the entry.
|
||||
* @param integer $expected_id Expected target ID.
|
||||
* @param string $birth_year Birth year.
|
||||
* @param string $death_year Death year.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
#[DataProvider('persinstByNameAndLifeDatesProvider')]
|
||||
public function testGetPersinstIdByNameAndLifeDatesWorks(string $name, int $expected_id, string $birth_year, string $death_year):void {
|
||||
|
||||
self::assertEquals($expected_id,
|
||||
NodaIDGetter::getPersinstIDByNamePlusYears($this->_mysqli, "de", $name, $birth_year, $death_year),
|
||||
"Entry " . $name . " is not matched in exact lookup. Expected ID: " . $expected_id);
|
||||
|
||||
}
|
||||
|
||||
// PersinstIDByRewrite
|
||||
|
||||
/**
|
||||
@ -411,7 +458,8 @@ final class NodaIDGetterTest extends TestCase {
|
||||
$mysqli = md_noda_mysqli_connect();
|
||||
$timeByRewriteSimple = self::_getNameAndIdFromDbQuery($mysqli, "SELECT `input_name`, `zeit_id`
|
||||
FROM `zeit_rewriting`
|
||||
WHERE INSTR(`input_name`, 'i')");
|
||||
WHERE INSTR(`input_name`, 'i')
|
||||
AND `language` = 'de'");
|
||||
$mysqli->close();
|
||||
|
||||
return [
|
||||
|
Loading…
x
Reference in New Issue
Block a user