Completed
Push — master ( f2ef3e...a98c98 )
by Bartko
01:49
created

Zend1Test::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace StefanoTreeTest\Unit\NestedSet\Adapter;
6
7
use StefanoTree\NestedSet\Adapter\Zend1;
8
use StefanoTree\NestedSet\Options;
9
use StefanoTreeTest\UnitTestCase;
10
11
class Zend1Test extends UnitTestCase
12
{
13
    protected function tearDown()
14
    {
15
        \Mockery::close();
16
    }
17
18
    public function testGetBlankDbSelect()
19
    {
20
        $options = new Options(array(
21
            'tableName' => 'tableName',
22
            'idColumnName' => 'id',
23
        ));
24
25
        $dbAdapter = $this->getDbAdapterMock();
26
        $adapter = new Zend1($options, $dbAdapter);
27
28
        $expectedQuery = 'SELECT "tableName".* FROM "tableName"';
29
        $actualQuery = (string) $adapter->getBlankDbSelect();
30
        $this->assertEquals($expectedQuery,
31
            $actualQuery);
32
    }
33
34
    public function testGetDefaultDbSelectMustAlwaysReturnNewInstance()
35
    {
36
        $options = new Options(array(
37
            'tableName' => 'tableName',
38
            'idColumnName' => 'id',
39
        ));
40
41
        $dbAdapter = $this->getDbAdapterMock();
42
        $adapter = new Zend1($options, $dbAdapter);
43
44
        $this->assertNotSame($adapter->getDefaultDbSelect(), $adapter->getDefaultDbSelect());
45
    }
46
47
    public function testSetDefaultDbSelectBuilder()
48
    {
49
        $options = new Options(array(
50
            'tableName' => 'tableName',
51
            'idColumnName' => 'id',
52
        ));
53
54
        $dbAdapter = $this->getDbAdapterMock();
55
        $adapter = new Zend1($options, $dbAdapter);
56
57
        $builder = function () use ($dbAdapter) {
58
            return $dbAdapter->select()->from('tableName');
59
        };
60
61
        $adapter->setDbSelectBuilder($builder);
62
63
        $this->assertEquals($builder()->__toString(), $adapter->getDefaultDbSelect()->__toString());
64
    }
65
66
    /**
67
     * @return \Zend_Db_Adapter_Pdo_Sqlite
68
     */
69
    protected function getDbAdapterMock()
70
    {
71
        $dbA = \Zend_Db::factory('Pdo_Sqlite', array(
72
            'database' => ':memory:',
73
            'dbname' => TEST_STEFANO_DB_DB_NAME,
74
        ));
75
76
        $dbAdapterMock = \Mockery::mock($dbA);
77
        $dbAdapterMock->makePartial();
78
79
        return $dbAdapterMock;
80
    }
81
}
82