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.
|
* 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
|
// PersinstIDByRewrite
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -411,7 +458,8 @@ final class NodaIDGetterTest extends TestCase {
|
|||||||
$mysqli = md_noda_mysqli_connect();
|
$mysqli = md_noda_mysqli_connect();
|
||||||
$timeByRewriteSimple = self::_getNameAndIdFromDbQuery($mysqli, "SELECT `input_name`, `zeit_id`
|
$timeByRewriteSimple = self::_getNameAndIdFromDbQuery($mysqli, "SELECT `input_name`, `zeit_id`
|
||||||
FROM `zeit_rewriting`
|
FROM `zeit_rewriting`
|
||||||
WHERE INSTR(`input_name`, 'i')");
|
WHERE INSTR(`input_name`, 'i')
|
||||||
|
AND `language` = 'de'");
|
||||||
$mysqli->close();
|
$mysqli->close();
|
||||||
|
|
||||||
return [
|
return [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user