Passed
Push — main ( 29cbd1...100eac )
by Peter
02:37
created

QueryBuilderTest::testDelete()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 0
dl 0
loc 8
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace QB\Generic\QueryBuilder;
6
7
use PHPUnit\Framework\TestCase;
8
use QB\Generic\Statement\Delete;
9
use QB\Generic\Statement\Insert;
10
use QB\Generic\Statement\Select;
11
use QB\Generic\Statement\Truncate;
12
use QB\Generic\Statement\Update;
13
14
class QueryBuilderTest extends TestCase
15
{
16
    /** @var QueryBuilder */
17
    protected IQueryBuilder $sut;
18
19
    public function setUp(): void
20
    {
21
        $this->sut = new QueryBuilder();
22
    }
23
24
    public function testSelect()
25
    {
26
        $select = $this->sut->select()->addFrom('foo');
27
28
        $sql = (string)$select;
29
30
        $this->assertInstanceOf(Select::class, $select);
31
        $this->assertSame("SELECT *\nFROM foo", $sql);
32
    }
33
34
    public function testInsert()
35
    {
36
        $insert = $this->sut->insert()->setInto('foo')->setColumns('bar')->addValues("'Bar'");
37
38
        $sql = (string)$insert;
39
40
        $this->assertInstanceOf(Insert::class, $insert);
41
        $this->assertSame("INSERT INTO foo (bar)\nVALUES ('Bar')", $sql);
42
    }
43
44
    public function testUpdate()
45
    {
46
        $update = $this->sut->update()->addFrom('foo')->setValues(['bar' => "'Bar'"])->addWhere('1');
47
48
        $sql = (string)$update;
49
50
        $this->assertInstanceOf(Update::class, $update);
51
        $this->assertSame("UPDATE foo\nSET bar = 'Bar'\nWHERE 1", $sql);
52
    }
53
54
    public function testDelete()
55
    {
56
        $delete = $this->sut->delete()->addFrom('foo')->addWhere('1');
57
58
        $sql = (string)$delete;
59
60
        $this->assertInstanceOf(Delete::class, $delete);
61
        $this->assertSame("DELETE FROM foo\nWHERE 1", $sql);
62
    }
63
64
    public function testTruncate()
65
    {
66
        $truncate = $this->sut->truncate()->addFrom('foo');
67
68
        $sql = (string)$truncate;
69
70
        $this->assertInstanceOf(Truncate::class, $truncate);
71
        $this->assertSame("TRUNCATE foo", $sql);
72
    }
73
}
74