Exemplo n.º 1
0
    public function testGetDataValuesFromXML()
    {
        $xml = <<<'EOD'
		<data version="6">
			<creators>
				<creator libraryID="1" key="AAAAAAAA" dateAdded="2009-04-13 20:43:19" dateModified="2009-04-13 20:43:19">
					<firstName>A.</firstName>
					<lastName>Testperson</lastName>
				</creator>
				<creator libraryID="1" key="BBBBBBBB" dateAdded="2009-04-13 20:45:18" dateModified="2009-04-13 20:45:18">
					<firstName>B</firstName>
					<lastName>Téstër</lastName>
				</creator>
				<creator libraryID="1" key="CCCCCCCC" dateAdded="2009-04-13 20:55:12" dateModified="2009-04-13 20:55:12">
					<name>Center før History and New Media</name>
					<fieldMode>1</fieldMode>
				</creator>
			</creators>
			<tags>
				<tag libraryID="1" key="AAAAAAAA" name="Foo" dateAdded="2009-08-06 10:20:06" dateModified="2009-08-06 10:20:06">
					<items>BBBBBBBB</items>
				</tag>
			</tags>
		</data>
EOD;
        $xml = new SimpleXMLElement($xml);
        $domSXE = dom_import_simplexml($xml->creators);
        $doc = new DOMDocument();
        $domSXE = $doc->importNode($domSXE, true);
        $domSXE = $doc->appendChild($domSXE);
        $objs = Zotero_Creators::getDataValuesFromXML($doc);
        usort($objs, function ($a, $b) {
            if ($a->lastName == $b->lastName) {
                return 0;
            }
            return $a->lastName < $b->lastName ? -1 : 1;
        });
        $this->assertEquals(sizeOf($objs), 3);
        $this->assertEquals($objs[0]->fieldMode, 1);
        $this->assertEquals($objs[0]->firstName, "");
        $this->assertEquals($objs[0]->lastName, "Center før History and New Media");
        $this->assertEquals($objs[0]->birthYear, null);
        $this->assertEquals($objs[1]->fieldMode, 0);
        $this->assertEquals($objs[1]->firstName, "A.");
        $this->assertEquals($objs[1]->lastName, "Testperson");
        $this->assertEquals($objs[1]->birthYear, null);
        $this->assertEquals($objs[2]->fieldMode, 0);
        $this->assertEquals($objs[2]->firstName, "B");
        $this->assertEquals($objs[2]->lastName, "Téstër");
        $this->assertEquals($objs[2]->birthYear, null);
    }