diff --git a/tests/ApiTestCase.php b/tests/ApiTestCase.php index 045cb74..21f2116 100644 --- a/tests/ApiTestCase.php +++ b/tests/ApiTestCase.php @@ -66,8 +66,13 @@ public function tearDown() } } } + + protected function loadJson($filename) + { + return json_decode(file_get_contents($this->filesDir . $filename), true); + } - protected function createPerson($gender = null) + protected function createPerson($gender = null) { $person = PersonBuilder::buildPerson($gender); $state = $this->collectionState()->addPerson($person); diff --git a/tests/files/person.json b/tests/files/person.json new file mode 100644 index 0000000..ba9c1e6 --- /dev/null +++ b/tests/files/person.json @@ -0,0 +1,187 @@ +{ + "id" : "PPPJ-MYZ", + "links" : { + "ancestry" : { + "href" : "https://familysearch.org/platform/tree/ancestry?person=PPPJ-MYZ" + }, + "spouses" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/spouses" + }, + "parents" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/parents" + }, + "person" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ" + }, + "descendancy" : { + "href" : "https://familysearch.org/platform/tree/descendancy?person=PPPJ-MYZ" + }, + "person-with-relationships" : { + "href" : "https://familysearch.org/platform/tree/persons-with-relationships?person=PPPJ-MYZ" + }, + "merge" : { + "template" : "https://familysearch.org/platform/tree/persons/{pid}/merges/{dpid}{?filter,access_token}", + "type" : "application/json,application/x-fs-v1+json,application/x-fs-v1+xml,application/xml,text/html", + "accept" : "application/x-fs-v1+json,application/x-fs-v1+xml", + "allow" : "GET,OPTIONS,POST", + "title" : "Person Merge" + }, + "change-history" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/changes" + }, + "evidence-references" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/memory-references" + }, + "children" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/children" + }, + "child-relationships" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/child-relationships" + }, + "collection" : { + "href" : "https://familysearch.org/platform/collections/tree" + }, + "ordinance-reservations" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/reservations" + }, + "artifacts" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/memories" + }, + "source-references" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/source-references" + }, + "matches" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/matches" + }, + "ordinances" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/ordinances" + }, + "portraits" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/portraits" + }, + "discussion-references" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/discussion-references" + }, + "spouse-relationships" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/spouse-relationships" + }, + "parent-relationships" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/parent-relationships" + }, + "portrait" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/portrait" + }, + "non-matches" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/not-a-match" + }, + "notes" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/notes" + }, + "source-descriptions" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/sources" + } + }, + "attribution" : { + "changeMessage" : "wikipedia knows" + }, + "identifiers" : { + "http://gedcomx.org/Persistent" : [ "https://familysearch.org/ark:/61903/4:1:PPPJ-MYZ" ] + }, + "living" : true, + "gender" : { + "type" : "http://gedcomx.org/Male" + }, + "names" : [ { + "id" : "name-id", + "links" : { + "conclusion" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/conclusions/name-id" + } + }, + "attribution" : { + "contributor" : { + "resource" : "urn:name-attribution", + "resourceId" : "KNCV-RMZ" + } + }, + "type" : "http://gedcomx.org/BirthName", + "nameForms" : [ { + "fullText" : "Alex Aleksandrova", + "parts" : [ { + "type" : "http://gedcomx.org/Given", + "value" : "Alex" + }, { + "type" : "http://gedcomx.org/Surname", + "value" : "Aleksandrova" + } ] + }, { + "fullText" : "Анастасия Александрова", + "parts" : [ { + "type" : "http://gedcomx.org/Given", + "value" : "Анастасия" + }, { + "type" : "http://gedcomx.org/Surname", + "value" : "Александрова" + } ] + } ], + "preferred" : true + } ], + "facts" : [ { + "id" : "born", + "links" : { + "conclusion" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/conclusions/born" + } + }, + "attribution" : { + "contributor" : { + "resource" : "urn:fact-attribution", + "resourceId" : "RMQW-LPK" + } + }, + "type" : "http://gedcomx.org/Birth", + "date" : { + "original" : "3 Apr 1836", + "formal" : "+1836" + }, + "place" : { + "original" : "Moscow, Russia", + "normalized" : [ { + "lang" : "en", + "value" : "Moscow, Moskva, Russia" + } ] + } + }, { + "id" : "res", + "links" : { + "conclusion" : { + "href" : "https://familysearch.org/platform/tree/persons/PPPJ-MYZ/conclusions/res" + } + }, + "attribution" : { + "contributor" : { + "resource" : "https://familysearch.org/platform/users/agents/JNYR-KJP", + "resourceId" : "JNYR-KJP" + } + }, + "type" : "http://gedcomx.org/Residence", + "date" : { + "original" : "13 Apr 1836", + "formal" : "+1836-04-13" + }, + "place" : { + "original" : "Moscow, Russia", + "description" : "#1276974106", + "normalized" : [ { + "value" : "Moskva, Moscow, Russia" + } ] + } + } ], + "display" : { + "name" : "Alex Aleksandrova", + "gender" : "Male", + "lifespan" : "3 Apr 1836 - Dead", + "birthDate" : "3 Apr 1836", + "birthPlace" : "Moscow, Russia" + } +} \ No newline at end of file diff --git a/tests/unit/GedcomxFileTests.php b/tests/unit/GedcomxFileTests.php index 253cb8f..13c3440 100644 --- a/tests/unit/GedcomxFileTests.php +++ b/tests/unit/GedcomxFileTests.php @@ -1,6 +1,6 @@ loadJson('person.json')); + $this->assertEquals($person->getId(), 'PPPJ-MYZ'); + $this->assertEquals(count($person->getFacts()), 2); + $this->assertEquals(count($person->getNames()), 1); + } + +} diff --git a/tests/unit/XMLTests.php b/tests/unit/XMLTests.php index a83c6fe..3f399bb 100644 --- a/tests/unit/XMLTests.php +++ b/tests/unit/XMLTests.php @@ -1,6 +1,6 @@ XML(file_get_contents($this->testRootDir.'/files/record.xml')); + $xmlReader->XML(file_get_contents($this->filesDir . 'record.xml')); $gedcomX = new Gedcomx($xmlReader); $extenstions = $gedcomX->getPersons()[0]->getSources()[0]->getExtensionElements(); $this->assertEquals(3, count($extenstions));