Exemplo n.º 1
0
 /**
  * @link https://familysearch.org/developers/docs/api/sources/Create_User-Uploaded_Source_usecase
  */
 public function testCreateUserUploadedSource()
 {
     $this->collectionState(new FamilyTreeStateFactory());
     /** @var FamilyTreePersonState $person */
     $person = $this->createPerson();
     $this->assertEquals(HttpStatus::CREATED, $person->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__ . '(create person)', $person));
     $person = $person->get();
     $this->assertEquals(HttpStatus::OK, $person->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__ . '(read person)', $person));
     $ds = new DataSource();
     $ds->setTitle("Sample Memory");
     $ds->setFile(ArtifactBuilder::makeTextFile());
     $a1 = $person->addArtifact($ds);
     $this->assertEquals(HttpStatus::CREATED, $a1->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__ . '(add artifact)', $a1));
     $this->queueForDelete($a1);
     $this->assertEquals(HttpStatus::CREATED, $a1->getResponse()->getStatusCode());
     $artifacts = $person->readArtifacts();
     $this->assertEquals(HttpStatus::OK, $artifacts->getResponse()->getStatusCode());
     /** @var \Gedcomx\Rs\Client\SourceDescriptionState $artifact */
     $artifact = $person->readArtifacts();
     $this->assertEquals(HttpStatus::OK, $artifact->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__ . '(read artifact)', $artifact));
     $artifact = $artifact->getSourceDescription();
     $memoryUri = $artifact->getLink("memory")->getHref();
     $source = SourceBuilder::newSource();
     $source->setAbout($memoryUri);
     $state = $this->collectionState()->addSourceDescription($source);
     $this->queueForDelete($state);
     $this->assertNotNull($state->ifSuccessful());
     $this->assertEquals(HttpStatus::CREATED, $state->getResponse()->getStatusCode(), $this->buildFailMessage(__METHOD__ . '(source description)', $state));
 }
Exemplo n.º 2
0
 /**
  * @link https://familysearch.org/developers/docs/api/memories/Upload_Story_usecase
  * SDK only supports uploading via multi-part form uploads.
  */
 public function testUploadStory()
 {
     $filename = ArtifactBuilder::makeTextFile();
     $artifact = new DataSource();
     $artifact->setFile($filename);
     $description = SourceBuilder::newSource();
     $factory = new FamilySearchStateFactory();
     /** @var FamilySearchMemories $memories */
     $memories = $factory->newMemoriesState();
     $memories = $this->authorize($memories);
     $this->assertNotEmpty($memories->getAccessToken());
     $upload = $memories->addArtifact($artifact, $description);
     $this->queueForDelete($upload);
     $this->assertEquals(HttpStatus::CREATED, $upload->getStatus(), $this->buildFailMessage(__METHOD__, $upload));
     $upload = $upload->get();
     $this->assertEquals(HttpStatus::OK, $upload->getStatus());
 }
Exemplo n.º 3
0
 protected function createSource()
 {
     $source = SourceBuilder::newSource();
     $link = $this->collectionState()->getLink(Rel::SOURCE_DESCRIPTIONS);
     if ($link === null || $link->getHref() === null) {
         return null;
     }
     $state = $this->collectionState()->addSourceDescription($source);
     $this->queueForDelete($state);
     return $state;
 }
Exemplo n.º 4
0
 /**
  * @vcr SourcesTests/testDeleteSourceDescription.json
  * @link https://familysearch.org/developers/docs/api/sources/Delete_Source_Description_usecase
  */
 public function testDeleteSourceDescription()
 {
     $this->collectionState(new FamilyTreeStateFactory());
     $sd = SourceBuilder::newSource();
     /** @var SourceDescriptionState $description */
     $description = $this->collectionState()->addSourceDescription($sd);
     $this->assertEquals(HttpStatus::CREATED, $description->getStatus());
     $this->queueForDelete($description);
     $description = $description->get();
     $this->assertEquals(HttpStatus::OK, $description->getStatus());
     $state = $description->delete();
     $this->assertNotNull($state->ifSuccessful());
     $this->assertEquals(HttpStatus::NO_CONTENT, $state->getStatus());
 }
Exemplo n.º 5
0
 /**
  * @vcr SourceBoxTests/testMoveSourcesToAUserDefinedCollection.json
  * @link https://familysearch.org/developers/docs/api/sources/Move_Sources_to_a_User-Defined_Collection_usecase
  */
 public function testMoveSourcesToAUserDefinedCollection()
 {
     $factory = new FamilySearchStateFactory();
     /** @var FamilySearchCollectionState $collection */
     $collection = $this->collectionState($factory, "https://sandbox.familysearch.org/platform/collections/sources");
     $sd = SourceBuilder::newSource();
     /** @var FamilySearchSourceDescriptionState $description */
     $description = $collection->addSourceDescription($sd);
     $this->queueForDelete($description);
     $this->assertEquals(HttpStatus::CREATED, $description->getStatus());
     $description = $description->get();
     $this->assertEquals(HttpStatus::OK, $description->getStatus());
     /** @var CollectionState $subcollection */
     $c = new Collection();
     $c->setTitle(TestBuilder::faker()->sha1);
     $subcollection = $collection->addCollection($c)->get();
     $this->queueForDelete($subcollection);
     /** @var FamilySearchSourceDescriptionState $state */
     $state = $description->moveToCollection($subcollection);
     $this->assertNotNull($state->ifSuccessful());
     $this->assertEquals(HttpStatus::NO_CONTENT, $state->getStatus());
     // Ensure it doesn't exist in the old collection
     $rootCollection = $this->getRootCollection($collection);
     $found = $this->findInCollection($description->getSourceDescription(), $rootCollection->readSourceDescriptions()->getEntity()->getSourceDescriptions());
     $this->assertFalse($found);
     // Ensure it exists in the new collection
     $found = $this->findInCollection($description->getSourceDescription(), $subcollection->readSourceDescriptions()->getEntity()->getSourceDescriptions());
     $this->assertTrue($found);
 }