Passed
Push — master ( cd6f65...3614ed )
by Vladimir
02:32
created

DbServiceTest::testInstanceOf()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 1
nc 1
nop 0
1
<?php
2
/**
3
 * @link https://github.com/yiimaker/yii2-newsletter
4
 * @copyright Copyright (c) 2017 Yii Maker
5
 * @license BSD 3-Clause License
6
 */
7
8
namespace ymaker\newsletter\tests\unit\services;
9
10
use yii\base\Event;
11
use ymaker\newsletter\common\events\SubscribeEvent;
12
use ymaker\newsletter\common\models\entities\NewsletterClient;
13
use ymaker\newsletter\common\services\DbService;
14
use ymaker\newsletter\common\services\ServiceInterface;
15
use ymaker\newsletter\tests\unit\TestCase;
16
17
/**
18
 * Test case for database service
19
 *
20
 * @author Vladimir Kuprienko <[email protected]>
21
 * @since 1.0
22
 */
23
class DbServiceTest extends TestCase
24
{
25
    /**
26
     * @var DbService
27
     */
28
    private $_service;
29
30
31
    /**
32
     * @inheritdoc
33
     */
34
    protected function _before()
35
    {
36
        parent::_before();
37
        $this->_service = new DbService();
38
    }
39
40
    public function testInstanceOf()
41
    {
42
        $this->assertInstanceOf(ServiceInterface::class, $this->_service);
43
    }
44
45
    public function testCreate()
46
    {
47
        $data = [
48
            'NewsletterClient' => [
49
                'contacts' => '[email protected]'
50
            ],
51
        ];
52
53
        $res = $this->_service->create($data);
54
55
        $this->assertTrue($res);
56
        $this->tester->seeRecord(NewsletterClient::class, [
57
            'contacts' => '[email protected]'
58
        ]);
59
    }
60
61
    public function testTriggerEvent()
62
    {
63
        $contacts = '[email protected]';
64
        Event::on(
65
            DbService::class,
66
            SubscribeEvent::EVENT_AFTER_SUBSCRIBE,
67
            function (SubscribeEvent $event) use ($contacts) {
68
                $this->assertEquals($contacts, $event->contacts);
69
            }
70
        );
71
72
        $data = [
73
            'NewsletterClient' => [
74
                'contacts' => $contacts
75
            ],
76
        ];
77
        $this->_service->create($data);
78
    }
79
}
80