Failed Conditions
Pull Request — master (#3512)
by David
17:16
created

SQLAnywhereSchemaManagerTest::testCommentInTable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Doctrine\Tests\DBAL\Functional\Schema;
4
5
use Doctrine\DBAL\Schema\Index;
6
use Doctrine\DBAL\Schema\Table;
7
use Doctrine\DBAL\Schema\View;
8
9
class SQLAnywhereSchemaManagerTest extends SchemaManagerFunctionalTestCase
10
{
11
    public function testCreateAndListViews() : void
12
    {
13
        $this->createTestTable('view_test_table');
14
15
        $name = 'doctrine_test_view';
16
        $sql  = 'SELECT * from DBA.view_test_table';
17
18
        $view = new View($name, $sql);
19
20
        $this->schemaManager->dropAndCreateView($view);
21
22
        $views = $this->schemaManager->listViews();
23
24
        self::assertCount(1, $views, 'Database has to have one view.');
25
        self::assertInstanceOf(View::class, $views[$name]);
26
        self::assertEquals($name, $views[$name]->getName());
27
        self::assertRegExp('/^SELECT \* from "?DBA"?\."?view_test_table"?$/', $views[$name]->getSql());
28
    }
29
30
    public function testDropAndCreateAdvancedIndex() : void
31
    {
32
        $table = $this->getTestTable('test_create_advanced_index');
33
        $this->schemaManager->dropAndCreateTable($table);
34
        $this->schemaManager->dropAndCreateIndex(
35
            new Index('test', ['test'], true, false, ['clustered', 'with_nulls_not_distinct', 'for_olap_workload']),
36
            $table->getName()
37
        );
38
39
        $tableIndexes = $this->schemaManager->listTableIndexes('test_create_advanced_index');
40
        self::assertIsArray($tableIndexes);
41
        self::assertEquals('test', $tableIndexes['test']->getName());
42
        self::assertEquals(['test'], $tableIndexes['test']->getColumns());
43
        self::assertTrue($tableIndexes['test']->isUnique());
44
        self::assertFalse($tableIndexes['test']->isPrimary());
45
        self::assertTrue($tableIndexes['test']->hasFlag('clustered'));
46
        self::assertTrue($tableIndexes['test']->hasFlag('with_nulls_not_distinct'));
47
        self::assertTrue($tableIndexes['test']->hasFlag('for_olap_workload'));
48
    }
49
50
    public function testListTableColumnsWithFixedStringTypeColumn() : void
51
    {
52
        $table = new Table('list_table_columns_char');
53
        $table->addColumn('id', 'integer', ['notnull' => true]);
54
        $table->addColumn('test', 'string', ['fixed' => true]);
55
        $table->setPrimaryKey(['id']);
56
57
        $this->schemaManager->dropAndCreateTable($table);
58
59
        $columns = $this->schemaManager->listTableColumns('list_table_columns_char');
60
61
        self::assertArrayHasKey('test', $columns);
62
        self::assertTrue($columns['test']->getFixed());
63
    }
64
65
    public function testCommentInTable() : void
66
    {
67
        self::markTestSkipped('Table level comments are not supported on SQLAnywhere');
68
    }
69
}
70