retriever->setClient(new Client(['handler' => $handler])); } protected function setUp(): void { $this->retriever = new ObjectRetriever; } public function testGetRootResource() { $this->setMockResponse(new Response(200, ['Content-Type' => 'application/ld+json'], '{"@context":{"cloudobjects":"coid:\/\/cloudobjects.io\/","rdf":"http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#","rdfs":"http:\/\/www.w3.org\/2000\/01\/rdf-schema#"},"@id":"coid:\/\/cloudobjects.io","@type":"cloudobjects:Namespace","cloudobjects:hasPublicListing":"true","cloudobjects:revision":"1-325baa62b76105f56dc09386f5a2ec91","rdfs:comment":"The CloudObjects namespace defines the essential objects.","rdfs:label":"CloudObjects"}' )); $coid = new IRI('coid://cloudobjects.io'); // Test node interface first $object = $this->retriever->getObjectNode($coid); $this->assertNotNull($object); $this->assertEquals((string)$coid, $object->getId()); $this->assertNotNull($object->getProperty('http://www.w3.org/2000/01/rdf-schema#label')); $this->assertEquals('CloudObjects', $object->getProperty('http://www.w3.org/2000/01/rdf-schema#label')->getValue()); $this->assertNull($object->getProperty('urn:example:nonexistingvalue')); // Test CloudObject interface $object = $this->retriever->getCloudObject($coid); $this->assertNotNull($object); $this->assertEquals((string)$coid, $object->getObjectNode()->getID()); $this->assertEquals($coid, $object->getCOID()); $this->assertNotNull($object->getString('http://www.w3.org/2000/01/rdf-schema#label')); $this->assertEquals('CloudObjects', $object->getString('http://www.w3.org/2000/01/rdf-schema#label')); $this->assertNull($object->getString('urn:example:nonexistingvalue')); } }