1*5153720fSfkaag71<?php 2*5153720fSfkaag71require_once('stratatest.inc.php'); 3*5153720fSfkaag71 4*5153720fSfkaag71/** 5*5153720fSfkaag71 * Tests storage removing. 6*5153720fSfkaag71 * 7*5153720fSfkaag71 * @group plugin_strata_storage 8*5153720fSfkaag71 * @group plugin_strata 9*5153720fSfkaag71 * @group plugins 10*5153720fSfkaag71 */ 11*5153720fSfkaag71class storage_removes_test extends Strata_UnitTestCase { 12*5153720fSfkaag71 13*5153720fSfkaag71 function setup() { 14*5153720fSfkaag71 parent::setup(); 15*5153720fSfkaag71 // Fill database 16*5153720fSfkaag71 $OK = $this->_triples->addTriple('Bob', 'knows', 'Alice', 'wiki'); 17*5153720fSfkaag71 $this->assertTrue($OK); 18*5153720fSfkaag71 $OK =$this->_triples->addTriple('Alice', 'knows', 'Carol', 'wiki'); 19*5153720fSfkaag71 $this->assertTrue($OK); 20*5153720fSfkaag71 $OK =$this->_triples->addTriple('Alice', 'dislikes', 'Carol', 'wiki'); 21*5153720fSfkaag71 $this->assertTrue($OK); 22*5153720fSfkaag71 23*5153720fSfkaag71 $this->expected1 = array('subject' => 'Bob', 'predicate' => 'knows', 'object' => 'Alice', 'graph' => 'wiki'); 24*5153720fSfkaag71 $this->expected2 = array('subject' => 'Alice', 'predicate' => 'knows', 'object' => 'Carol', 'graph' => 'wiki'); 25*5153720fSfkaag71 $this->expected3 = array('subject' => 'Alice', 'predicate' => 'dislikes', 'object' => 'Carol', 'graph' => 'wiki'); 26*5153720fSfkaag71 27*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 28*5153720fSfkaag71 $this->assertEquals($data, array($this->expected1, $this->expected2, $this->expected3)); 29*5153720fSfkaag71 } 30*5153720fSfkaag71 31*5153720fSfkaag71 function testRemove() { 32*5153720fSfkaag71 // Remove all 33*5153720fSfkaag71 $this->_triples->removeTriples(); 34*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 35*5153720fSfkaag71 $this->assertEquals($data, array()); 36*5153720fSfkaag71 } 37*5153720fSfkaag71 38*5153720fSfkaag71 function testRemoveBySubject() { 39*5153720fSfkaag71 $this->_triples->removeTriples('Bob'); 40*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 41*5153720fSfkaag71 $this->assertEquals($data, array($this->expected2, $this->expected3)); 42*5153720fSfkaag71 43*5153720fSfkaag71 $this->_triples->removeTriples('Alice'); 44*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 45*5153720fSfkaag71 $this->assertEquals($data, array()); 46*5153720fSfkaag71 } 47*5153720fSfkaag71 48*5153720fSfkaag71 function testRemoveByPredicate() { 49*5153720fSfkaag71 $this->_triples->removeTriples(null, 'knows'); 50*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 51*5153720fSfkaag71 $this->assertEquals($data, array($this->expected3)); 52*5153720fSfkaag71 53*5153720fSfkaag71 $this->_triples->removeTriples(null, 'dislikes'); 54*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 55*5153720fSfkaag71 $this->assertEquals($data, array()); 56*5153720fSfkaag71 } 57*5153720fSfkaag71 58*5153720fSfkaag71 function testRemoveByObject() { 59*5153720fSfkaag71 $this->_triples->removeTriples(null, null, 'Alice'); 60*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 61*5153720fSfkaag71 $this->assertEquals($data, array($this->expected2, $this->expected3)); 62*5153720fSfkaag71 63*5153720fSfkaag71 $this->_triples->removeTriples(null, null, 'Carol'); 64*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 65*5153720fSfkaag71 $this->assertEquals($data, array()); 66*5153720fSfkaag71 } 67*5153720fSfkaag71 68*5153720fSfkaag71 function testRemoveBySubjectAndPredicate() { 69*5153720fSfkaag71 $this->_triples->removeTriples('Alice', 'knows'); 70*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 71*5153720fSfkaag71 $this->assertEquals($data, array($this->expected1, $this->expected3)); 72*5153720fSfkaag71 } 73*5153720fSfkaag71 74*5153720fSfkaag71 function testRemoveByPredicateAndObject() { 75*5153720fSfkaag71 $this->_triples->removeTriples(null, 'knows', 'Carol'); 76*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 77*5153720fSfkaag71 $this->assertEquals($data, array($this->expected1, $this->expected3)); 78*5153720fSfkaag71 } 79*5153720fSfkaag71 80*5153720fSfkaag71 function testRemoveCaseInsensitive() { 81*5153720fSfkaag71 $this->_triples->removeTriples('bob'); 82*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 83*5153720fSfkaag71 $this->assertEquals($data, array($this->expected2, $this->expected3)); 84*5153720fSfkaag71 85*5153720fSfkaag71 $this->_triples->removeTriples(null, 'Knows'); 86*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 87*5153720fSfkaag71 $this->assertEquals($data, array($this->expected3)); 88*5153720fSfkaag71 89*5153720fSfkaag71 $this->_triples->removeTriples(null, null, 'carol'); 90*5153720fSfkaag71 $data = $this->_triples->fetchTriples(); 91*5153720fSfkaag71 $this->assertEquals($data, array()); 92*5153720fSfkaag71 } 93*5153720fSfkaag71} 94*5153720fSfkaag71 95