Passed
Pull Request — master (#78)
by Damian
02:06 queued 52s
created

PostgreSQLQueryBuilderTest   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 32
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
B testLongAliases() 0 30 1
1
<?php
2
3
namespace SilverStripe\PostgreSQL\Tests;
4
5
use SilverStripe\Dev\SapphireTest;
6
use SilverStripe\ORM\Queries\SQLSelect;
7
use SilverStripe\PostgreSQL\PostgreSQLQueryBuilder;
8
9
class PostgreSQLQueryBuilderTest extends SapphireTest
10
{
11
    public function testLongAliases()
12
    {
13
        $query = new SQLSelect();
14
        $longstring = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
15
        $alias2 = $longstring . $longstring;
16
        $query->selectField('*');
17
        $query->addFrom('"Base"');
18
        $query->addLeftJoin(
19
            'Joined',
20
            "\"Base\".\"ID\" = \"{$alias2}\".\"ID\"",
21
            $alias2
22
        );
23
        $query->addWhere([
24
            "\"{$alias2}\".\"Title\" = ?" => 'Value',
25
        ]);
26
27
        $identifier = "c4afb43_hijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
28
        $this->assertEquals(PostgreSQLQueryBuilder::MAX_TABLE, strlen($identifier));
29
30
        $expected = <<<SQL
31
SELECT *
32
 FROM "Base" LEFT JOIN "Joined" AS "c4afb43_hijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
33
 ON "Base"."ID" = "c4afb43_hijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"."ID"
34
 WHERE ("c4afb43_hijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"."Title" = ?)
35
SQL;
36
        $builder = new PostgreSQLQueryBuilder();
37
        $sql = $builder->buildSQL($query, $params);
38
39
        $this->assertSQLEquals($expected, $sql);
40
        $this->assertEquals(['Value'], $params);
41
    }
42
}
43