xref: /plugin/strata/_test/storage_removes.test.php (revision 5153720fcc1dd2b6e63035d45f7c2bc32e429371)
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