/** * Invoke Citation * * @param \VuFind\RecordDriver\Base $driver Record driver object. * * @return Citation * * @override */ public function __invoke($driver) { parent::__invoke($driver); $pubDates = $driver->tryMethod('getHumanReadablePublicationDates'); $this->details['pubDate'] = isset($pubDates[0]) ? $pubDates[0] : null; return $this; }
/** * Test citation generation * * @return void */ public function testCitations() { $citation = new Citation(new \VuFind\Date\Converter()); $citation->setView($this->getPhpRenderer()); $driver = new \VuFindTest\RecordDriver\TestHarness(); foreach ($this->citations as $current) { $driver->setRawData($current['raw']); $cb = $citation->__invoke($driver); // Normalize whitespace: $apa = trim(preg_replace("/\\s+/", " ", $cb->getCitation('APA'))); $this->assertEquals($current['apa'], $apa); // Normalize whitespace: $mla = trim(preg_replace("/\\s+/", " ", $cb->getCitation('MLA'))); $this->assertEquals($current['mla'], $mla); // Normalize whitespace: $chicago = trim(preg_replace("/\\s+/", " ", $cb->getCitation('Chicago'))); $this->assertEquals($current['chicago'], $chicago); } // Test a couple of illegal citation formats: $this->assertEquals('', $cb->getCitation('')); $this->assertEquals('', $cb->getCitation('Citation')); $this->assertEquals('', $cb->getCitation('SupportedCitationFormats')); $this->assertEquals('', $cb->getCitation('badgarbage')); }