diff -r f8200c5482ec -r c731ab9b934d server/src/tests/Libraries/Sparql/SparqlQueryAnalyserTest.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/server/src/tests/Libraries/Sparql/SparqlQueryAnalyserTest.php Mon Oct 31 14:24:23 2016 +0100 @@ -0,0 +1,81 @@ + "base.sparql", + "ASK" => "ask.sparql", + "GRAPH" => "graph.sparql", + "LIMIT_OFFSET" => "limit_offset.sparql", + "PREFIXES" => "prefixes.sparql", + "SELECT" => "select.sparql", + "UNKNOWN" => "unknown.sparql", + ]; + + + public function getTestQuery($key) { + return file_get_contents(__DIR__.'/files/SparqlQueryAnalyserTest/'.self::QUERIES[$key]); + } + /** + * A basic test jsut test object creation. + * + * @return void + */ + public function testCreation() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("BASE")); + $this->assertNotNull($analyser); + } + + public function testQuerySelect() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("SELECT")); + $this->assertEquals(SparqlQueryAnalyser::SELECT_QUERY, $analyser->getQueryType()); + } + + public function testQueryGraph() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("GRAPH")); + $this->assertEquals(SparqlQueryAnalyser::GRAPH_QUERY, $analyser->getQueryType()); + } + + public function testQueryAsk() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("ASK")); + $this->assertEquals(SparqlQueryAnalyser::ASK_QUERY, $analyser->getQueryType()); + } + + public function testQueryUnkown() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("UNKNOWN")); + $this->assertEquals(SparqlQueryAnalyser::UNKNOWN_QUERY, $analyser->getQueryType()); + } + + public function testLimitOffset() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("LIMIT_OFFSET")); + $this->assertEquals(20, $analyser->getOffset()); + $this->assertEquals(10, $analyser->getLimit()); + } + + public function testPrefixes() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES")); + $this->assertCount(5, $analyser->getPrefixes()); + $this->assertEquals([ + "" => "http://www.google.com/", + "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#", + "rdfs" => "http://www.w3.org/2000/01/rdf-schema#", + "foaf" => "http://xmlns.com/foaf/0.1/", + "dbpedia-owl" => "http://dbpedia.org/ontology/" + ], $analyser->getPrefixes()); + } + + public function testRawPrefixes() { + $analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES")); + $this->assertCount(5, $analyser->getRawPrefixes()); + $this->assertEquals([ + "BASE ", + "PREFIX rdf:", + "PREFIX rdfs: ", + "prefix foaf: ", + "PREFIX dbpedia-owl: " + ], $analyser->getRawPrefixes()); + } + +}