server/src/tests/Libraries/Sparql/SparqlQueryAnalyserTest.php
author ymh <ymh.work@gmail.com>
Mon, 31 Oct 2016 14:24:23 +0100
changeset 386 c731ab9b934d
child 387 7fba86fa8604
permissions -rw-r--r--
implement first version of sparql client interface
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
386
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use CorpusParole\Libraries\Sparql\SparqlQueryAnalyser;
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
class SparqlQueryAnalyserTest extends TestCase
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
{
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
    const QUERIES = [
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
        "BASE" => "base.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
        "ASK" => "ask.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
        "GRAPH" => "graph.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
        "LIMIT_OFFSET" => "limit_offset.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
        "PREFIXES" => "prefixes.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        "SELECT" => "select.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
        "UNKNOWN" => "unknown.sparql",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
    ];
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
    public function getTestQuery($key) {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        return file_get_contents(__DIR__.'/files/SparqlQueryAnalyserTest/'.self::QUERIES[$key]);
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    /**
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
     * A basic test jsut test object creation.
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
     *
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
     * @return void
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
     */
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
    public function testCreation() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("BASE"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
        $this->assertNotNull($analyser);
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    public function testQuerySelect() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("SELECT"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        $this->assertEquals(SparqlQueryAnalyser::SELECT_QUERY, $analyser->getQueryType());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    public function testQueryGraph() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("GRAPH"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        $this->assertEquals(SparqlQueryAnalyser::GRAPH_QUERY, $analyser->getQueryType());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
    public function testQueryAsk() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("ASK"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        $this->assertEquals(SparqlQueryAnalyser::ASK_QUERY, $analyser->getQueryType());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
    public function testQueryUnkown() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("UNKNOWN"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
        $this->assertEquals(SparqlQueryAnalyser::UNKNOWN_QUERY, $analyser->getQueryType());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
    public function testLimitOffset() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("LIMIT_OFFSET"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        $this->assertEquals(20, $analyser->getOffset());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        $this->assertEquals(10, $analyser->getLimit());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    public function testPrefixes() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
        $this->assertCount(5, $analyser->getPrefixes());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        $this->assertEquals([
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
            "" => "http://www.google.com/",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
            "rdf" => "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            "rdfs" => "http://www.w3.org/2000/01/rdf-schema#",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            "foaf" => "http://xmlns.com/foaf/0.1/",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            "dbpedia-owl" => "http://dbpedia.org/ontology/"
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        ], $analyser->getPrefixes());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    public function testRawPrefixes() {
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        $analyser = new SparqlQueryAnalyser($this->getTestQuery("PREFIXES"));
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
        $this->assertCount(5, $analyser->getRawPrefixes());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        $this->assertEquals([
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
            "BASE <http://www.google.com/>",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            "PREFIX rdf:<http://www.w3.org/1999/02/22-rdf-syntax-ns#>",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
            "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            "prefix foaf: <http://xmlns.com/foaf/0.1/>",
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            "PREFIX dbpedia-owl: <http://dbpedia.org/ontology/>"
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
        ], $analyser->getRawPrefixes());
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    }
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
c731ab9b934d implement first version of sparql client interface
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
}