Passed
Push — master ( bcd872...3ec68d )
by Alexander
04:52
created

TokenGeneratorTest::testIntegerTokenFail()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 5
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
3
namespace Wearesho\Yii\Tests\Services;
4
5
use PHPUnit\Framework\TestCase;
6
7
use Wearesho\Yii\Services\TokenGenerator;
8
9
/**
10
 * Class TokenGeneratorTest
11
 * @package Wearesho\Yii\Tests\Services
12
 *
13
 * @internal
14
 */
15
class TokenGeneratorTest extends TestCase
16
{
17
    /** @var TokenGenerator */
18
    protected $generator;
19
20
    protected function setUp(): void
21
    {
22
        parent::setUp();
23
        $this->generator = new TokenGenerator($tokenLength = 6);
24
    }
25
26
    public function testLength(): void
27
    {
28
        $token = $this->generator->getToken();
29
        $this->assertEquals(
30
            6,
31
            mb_strlen($token),
32
            "getToken should return token with length passed to constructor"
33
        );
34
    }
35
36
    public function testIntegerToken(): void
37
    {
38
        $token = $this->generator->getIntegerToken();
39
        $this->assertGreaterThanOrEqual(100000, $token);
40
        $this->assertLessThanOrEqual(999999, $token);
41
    }
42
43
    public function testDefaultIntegerToken(): void
44
    {
45
        $token = 111111;
46
        putenv("TOKEN_GENERATOR_DEFAULT={$token}");
47
        $this->assertEquals($token, $this->generator->getIntegerToken());
48
    }
49
50
    /**
51
     * @expectedException \BadMethodCallException
52
     * @expectedExceptionMessage Environment token aaaaaa is not numeric
53
     */
54
    public function testIntegerTokenFail(): void
55
    {
56
        putenv('TOKEN_GENERATOR_DEFAULT=aaaaaa');
57
        $this->generator->getIntegerToken();
58
    }
59
60
    public function testDefaultEnvironmentToken(): void
61
    {
62
        $defaultEnvironmentToken = 123456;
63
64
        putenv('TOKEN_GENERATOR_DEFAULT');
65
        $this->assertNotEquals($defaultEnvironmentToken, $this->generator->getToken());
66
67
        putenv('TOKEN_GENERATOR_DEFAULT=' . $defaultEnvironmentToken);
68
        $this->assertEquals($defaultEnvironmentToken, $this->generator->getToken());
69
    }
70
}
71