SessionFactoryTest   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 2
Bugs 1 Features 0
Metric Value
wmc 2
eloc 10
c 2
b 1
f 0
dl 0
loc 20
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A testCreate() 0 8 1
A dataCreate() 0 5 1
1
<?php
2
namespace App\Tests\Unit\Factory;
3
4
use App\Factory\SessionFactory;
5
use App\Model\Session;
6
use Codeception\Test\Unit;
7
use Yii;
8
use yii\web\Request;
9
10
class SessionFactoryTest extends Unit
11
{
12
    /**
13
     * @dataProvider dataCreate
14
     */
15
    public function testCreate(int $userId, int $duration, int $refeshDuration, Request $request): void
16
    {
17
        $session = SessionFactory::create($userId, $duration, $refeshDuration, $request);
18
        $this->assertSame($userId, $session->user_id);
19
        $this->assertTrue($duration + time() >= $session->expire_time);
20
        $this->assertTrue($refeshDuration + time() >= $session->refresh_token_expire_time);
21
        $this->assertEquals($request->getUserIP(), $session->ip_address);
22
        $this->assertEquals($request->getUserAgent(), $session->user_agent);
23
    }
24
25
    public function dataCreate(): array
26
    {
27
        return [
28
            [1, 2, 3, new \yii\web\Request()],
29
            [4, 5, 6, new \yii\web\Request()],
30
        ];
31
    }
32
}
33