Passed
Pull Request — master (#234)
by Wilmer
04:01 queued 01:22
created

ActiveRecordTest::tearDown()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 3
dl 0
loc 7
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 Yiisoft\ActiveRecord\Tests\Driver\Mssql;
6
7
use Yiisoft\ActiveRecord\ActiveQuery;
8
use Yiisoft\ActiveRecord\Tests\ActiveRecordTest as AbstractActiveRecordTest;
9
use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\TestTrigger;
10
use Yiisoft\ActiveRecord\Tests\Stubs\ActiveRecord\TestTriggerAlert;
11
use Yiisoft\Db\Connection\ConnectionInterface;
12
13
/**
14
 * @group mssql
15
 */
16
final class ActiveRecordTest extends AbstractActiveRecordTest
17
{
18
    protected string $driverName = 'mssql';
19
    protected ConnectionInterface $db;
20
21
    public function setUp(): void
22
    {
23
        parent::setUp();
24
25
        $this->db = $this->mssqlConnection;
26
    }
27
28
    protected function tearDown(): void
29
    {
30
        parent::tearDown();
31
32
        $this->mssqlConnection->close();
33
34
        unset($this->mssqlConnection);
35
    }
36
37
    public function testSaveWithTrigger(): void
38
    {
39
        $this->checkFixture($this->db, 'test_trigger');
40
41
        $db = $this->mssqlConnection;
42
43
        /** drop trigger if exist */
44
        $sql = 'IF (OBJECT_ID(N\'[dbo].[test_alert]\') IS NOT NULL)
45
BEGIN
46
      DROP TRIGGER [dbo].[test_alert];
47
END';
48
        $db->createCommand($sql)->execute();
49
50
        /** create trigger */
51
        $sql = 'CREATE TRIGGER [dbo].[test_alert] ON [dbo].[test_trigger]
52
AFTER INSERT
53
AS
54
BEGIN
55
    INSERT INTO [dbo].[test_trigger_alert] ( [stringcol] )
56
    SELECT [stringcol]
57
    FROM [inserted]
58
END';
59
        $db->createCommand($sql)->execute();
60
61
        $record = new TestTrigger($db);
62
63
        $record->stringcol = 'test';
64
65
        $this->assertTrue($record->save());
66
        $this->assertEquals(1, $record->id);
67
68
        $testRecordQuery = new ActiveQuery(TestTriggerAlert::class, $db);
69
70
        $this->assertEquals('test', $testRecordQuery->findOne(1)->stringcol);
71
    }
72
}
73