diff --git a/src/HAB/Pica/Record/TitleRecord.php b/src/HAB/Pica/Record/TitleRecord.php index 94660b1ff0d546aaedad8f7bac9c5d6679e02bce..71cf43f0a456afebd21e8592f6380b8fff5bf7aa 100644 --- a/src/HAB/Pica/Record/TitleRecord.php +++ b/src/HAB/Pica/Record/TitleRecord.php @@ -75,7 +75,13 @@ class TitleRecord extends NestedRecord $this->addLocalRecord($localRecord); } else { $records = $this->getLocalRecords(); - $localRecord = end($records); + // Handle malformed Pica record w/ missing local record field + if (empty($records)) { + $localRecord = new LocalRecord(); + $this->addLocalRecord($localRecord); + } else { + $localRecord = end($records); + } if ($level === 1) { $localRecord->append($field); } else { diff --git a/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php b/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php index 9753e11996a94f59186db8584335629468a6a22c..8a06fcbbcda737f6564dc0c8aa1415560063604b 100644 --- a/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php +++ b/tests/unit-tests/src/HAB/Pica/Record/TitleRecordTest.php @@ -121,4 +121,14 @@ class TitleRecordTest extends PHPUnit_FrameWork_TestCase $r->addLocalRecord($l); $this->assertTrue($r->containsLocalRecord($l)); } + + public function testTitleRecordWithNoLocalRecordIndicator () + { + $record = new TitleRecord(); + $fields = array(); + $fields []= new Field('003@', 0); + $fields []= new Field('200@', 0); + $record->setFields($fields); + $this->assertNotEmpty($record->getLocalRecords()); + } }