HasEventsTests   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 15
c 1
b 0
f 1
dl 0
loc 34
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A test_registerModelEvent() 0 15 1
A data_registerModelEvent() 0 8 2
1
<?php
2
3
namespace Nip\Records\Tests\EventManager;
4
5
use Nip\Records\AbstractModels\Record;
6
use Nip\Records\EventManager\EventManager;
7
use Nip\Records\EventManager\Events\Event;
8
use Nip\Records\EventManager\Events\Observe;
9
use Nip\Records\Tests\AbstractTest;
10
use Nip\Records\Tests\Fixtures\Records\Books\Books;
11
12
/**
13
 * Class HasEventsTests
14
 * @package Nip\Records\Tests\EventManager
15
 */
16
class HasEventsTests extends AbstractTest
17
{
18
    /**
19
     * @dataProvider data_registerModelEvent
20
     * @param $event
21
     */
22
    public function test_registerModelEvent($event)
23
    {
24
        $called = 0;
25
        Books::{$event}(function (Event $event) use (&$called) {
26
            self::assertInstanceOf(Event::class, $event);
27
            self::assertInstanceOf(Record::class, $event->getRecord());
28
            $called++;
29
        });
30
31
        $books = Books::instance();
32
        $book = $books->getNew();
33
34
        $books->triggerModelEvent($event, $book);
35
36
        self::assertSame(1, $called);
37
    }
38
39
    /**
40
     * @return array
41
     */
42
    public function data_registerModelEvent()
43
    {
44
        $events = Observe::all();
45
        $data = [];
46
        foreach ($events as $event) {
47
            $data[] = [$event];
48
        }
49
        return $data;
50
    }
51
}
52