danielebarchiesi@4: obj = ARC2::getGraph(); danielebarchiesi@4: $this->res1 = array( danielebarchiesi@4: 'http://example.com/s1' => array( danielebarchiesi@4: 'http://example.com/p1' => array( danielebarchiesi@4: array('value' => 'o1', 'type' => 'literal'), danielebarchiesi@4: array('value' => 'http://example.com/o1', 'type' => 'uri'), danielebarchiesi@4: ), danielebarchiesi@4: ), danielebarchiesi@4: ); danielebarchiesi@4: $this->res2 = array( danielebarchiesi@4: 'http://example.com/s2' => array( danielebarchiesi@4: 'http://example.com/p2' => array( danielebarchiesi@4: array('value' => 'o2', 'type' => 'literal'), danielebarchiesi@4: array('value' => 'http://example.com/o2', 'type' => 'uri'), danielebarchiesi@4: ), danielebarchiesi@4: ), danielebarchiesi@4: ); danielebarchiesi@4: $this->res3 = array( danielebarchiesi@4: 'http://example.com/s1' => array( danielebarchiesi@4: 'http://example.com/p3' => array( danielebarchiesi@4: array('value' => 'o3', 'type' => 'literal'), danielebarchiesi@4: ), danielebarchiesi@4: ), danielebarchiesi@4: ); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testSetIndex() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res1); danielebarchiesi@4: $this->assertSame($this->obj, $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals($this->res1, $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetIndex() { danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertTrue(is_array($actual), 'should return array'); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testAddIndex() { danielebarchiesi@4: $actual = $this->obj->addIndex($this->res1); danielebarchiesi@4: $this->assertSame($this->obj, $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals($this->res1, $actual); danielebarchiesi@4: danielebarchiesi@4: $this->obj->addIndex($this->res1); danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals($this->res1, $actual); danielebarchiesi@4: danielebarchiesi@4: $this->obj->addIndex($this->res2); danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals(array_merge($this->res1, $this->res2), $actual); danielebarchiesi@4: danielebarchiesi@4: $this->obj->addIndex($this->res3); danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals(2, count(array_keys($actual['http://example.com/s1']))); danielebarchiesi@4: $this->assertEquals(1, count(array_keys($actual['http://example.com/s2']))); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testAddGraph() { danielebarchiesi@4: $this->obj->addIndex($this->res1); danielebarchiesi@4: $g2 = ARC2::getGraph()->addIndex($this->res2); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->addGraph($g2); danielebarchiesi@4: $this->assertSame($this->obj, $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals(array_merge($this->res1, $this->res2), $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testAddGraphWithNamespaces() { danielebarchiesi@4: $g2 = ARC2::getGraph()->setPrefix('ex', 'http://example.com/'); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->addGraph($g2); danielebarchiesi@4: $this->assertArrayHasKey('ex', $actual->ns); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testAddRdf() { danielebarchiesi@4: $rdf = $this->obj->toTurtle($this->res1); danielebarchiesi@4: $this->obj->addRdf($rdf, 'turtle'); danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals($this->res1, $actual); danielebarchiesi@4: danielebarchiesi@4: $rdf = json_encode($this->res2); danielebarchiesi@4: $this->obj->addRdf($rdf, 'json'); danielebarchiesi@4: $actual = $this->obj->getIndex(); danielebarchiesi@4: $this->assertEquals(array_merge($this->res1, $this->res2), $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testHasSubject() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res1); danielebarchiesi@4: $this->assertTrue($actual->hasSubject('http://example.com/s1')); danielebarchiesi@4: $this->assertFalse($actual->hasSubject('http://example.com/s2')); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testHasTriple() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res1); danielebarchiesi@4: $this->assertTrue($actual->hasTriple('http://example.com/s1', 'http://example.com/p1', 'o1')); danielebarchiesi@4: $this->assertFalse($actual->hasTriple('http://example.com/s1', 'http://example.com/p1', 'o2')); danielebarchiesi@4: $this->assertTrue($actual->hasTriple('http://example.com/s1', 'http://example.com/p1', array('value' => 'o1', 'type' => 'literal'))); danielebarchiesi@4: $this->assertFalse($actual->hasTriple('http://example.com/s1', 'http://example.com/p1', array('value' => 'o1', 'type' => 'uri'))); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testHasLiteralTriple() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res2); danielebarchiesi@4: $this->assertTrue($actual->hasLiteralTriple('http://example.com/s2', 'http://example.com/p2', 'o2')); danielebarchiesi@4: $this->assertFalse($actual->hasLiteralTriple('http://example.com/s1', 'http://example.com/p1', 'o2')); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testHasLinkTriple() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res2); danielebarchiesi@4: $this->assertTrue($actual->hasLinkTriple('http://example.com/s2', 'http://example.com/p2', 'http://example.com/o2')); danielebarchiesi@4: $this->assertFalse($actual->hasLinkTriple('http://example.com/s2', 'http://example.com/p2', 'o2')); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testAddTriple() { danielebarchiesi@4: $actual = $this->obj->addTriple('_:s1', '_:p1', 'o1'); danielebarchiesi@4: $this->assertTrue($actual->hasLiteralTriple('_:s1', '_:p1', 'o1')); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->addTriple('_:s1', '_:p1', 'o1', 'bnode'); danielebarchiesi@4: $this->assertTrue($actual->hasLinkTriple('_:s1', '_:p1', 'o1')); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetSubjects() { danielebarchiesi@4: $g = $this->obj->setIndex($this->res1); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects(); danielebarchiesi@4: $this->assertEquals(array('http://example.com/s1'), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects('p'); danielebarchiesi@4: $this->assertEquals(array(), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects('http://example.com/p1'); danielebarchiesi@4: $this->assertEquals(array('http://example.com/s1'), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects(null, 'o'); danielebarchiesi@4: $this->assertEquals(array(), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects(null, 'o1'); danielebarchiesi@4: $this->assertEquals(array('http://example.com/s1'), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects(null, array('value' => 'http://example.com/o1', 'type' => 'uri')); danielebarchiesi@4: $this->assertEquals(array('http://example.com/s1'), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects('http://example.com/p1', 'o'); danielebarchiesi@4: $this->assertEquals(array(), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getSubjects('http://example.com/p1', 'o1'); danielebarchiesi@4: $this->assertEquals(array('http://example.com/s1'), $actual); danielebarchiesi@4: danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetPredicates() { danielebarchiesi@4: $g = $this->obj->setIndex($this->res1)->addIndex($this->res2); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getPredicates(); danielebarchiesi@4: $this->assertEquals(array('http://example.com/p1', 'http://example.com/p2'), $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $g->getPredicates('http://example.com/s2'); danielebarchiesi@4: $this->assertEquals(array('http://example.com/p2'), $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetObjects() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res1)->getObjects('http://example.com/s1', 'http://example.com/p1', true); danielebarchiesi@4: $this->assertEmpty(array_diff(array('http://example.com/o1', 'o1'), $actual)); danielebarchiesi@4: $this->assertEmpty(array_diff($actual, array('http://example.com/o1', 'o1'))); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->getObjects('http://example.com/s1', 'http://example.com/p3'); danielebarchiesi@4: $this->assertEquals(array(array('value' => 'o3', 'type' => 'literal')), $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetObject() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res1)->getObject('http://example.com/s1', 'http://example.com/p1', true); danielebarchiesi@4: $this->assertEquals('o1', $actual); danielebarchiesi@4: danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->getObject('http://example.com/s1', 'http://example.com/p3'); danielebarchiesi@4: $this->assertEquals(array('value' => 'o3', 'type' => 'literal'), $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetNtriples() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->getNTriples(); danielebarchiesi@4: $this->assertContains(' "o3"', $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetTurtle() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->setPrefix('ex', 'http://example.com/')->getTurtle(); danielebarchiesi@4: $this->assertContains(' ex:p3 "o3"', $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetRDFXML() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->getRDFXML(); danielebarchiesi@4: $this->assertContains('', $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: public function testGetJSON() { danielebarchiesi@4: $actual = $this->obj->setIndex($this->res3)->getJSON(); danielebarchiesi@4: $this->assertContains('{"http:\/\/example.com\/s1":', $actual); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: }