Passed
Push — main ( 3b40c1...b711d3 )
by Peter
07:24
created

CryptoBootstrapperTest   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 36
Duplicated Lines 0 %

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A tearDown() 0 6 1
A setUp() 0 3 1
A testRegisterBindings() 0 18 1
1
<?php
2
3
namespace AbterPhp\Framework\Bootstrappers\Crypto;
4
5
use AbterPhp\Framework\Constant\Env;
6
use AbterPhp\Framework\Crypto\Crypto;
7
use AbterPhp\Framework\Environments\Environment;
8
use Opulence\Cryptography\Encryption\IEncrypter;
9
use Opulence\Cryptography\Hashing\IHasher;
10
use Opulence\Ioc\Container;
11
use PHPUnit\Framework\TestCase;
12
13
class CryptoBootstrapperTest extends TestCase
14
{
15
    /** @var CryptoBootstrapper */
16
    protected CryptoBootstrapper $sut;
17
18
    public function setUp(): void
19
    {
20
        $this->sut = new CryptoBootstrapper();
21
    }
22
23
    protected function tearDown(): void
24
    {
25
        Environment::unsetVar(Env::CRYPTO_ENCRYPTION_PEPPER);
26
        Environment::unsetVar(Env::CRYPTO_FRONTEND_SALT);
27
        Environment::unsetVar(Env::CRYPTO_BCRYPT_SALT);
28
        Environment::unsetVar(Env::CRYPTO_BCRYPT_COST);
29
    }
30
31
    public function testRegisterBindings()
32
    {
33
        Environment::setVar(Env::CRYPTO_ENCRYPTION_PEPPER, 'foo');
34
        Environment::setVar(Env::CRYPTO_FRONTEND_SALT, 'bar');
35
        Environment::setVar(Env::CRYPTO_BCRYPT_SALT, 'baz');
36
        Environment::setVar(Env::CRYPTO_BCRYPT_COST, 'quix');
37
38
        $encrypterMock = $this->getMockBuilder(IEncrypter::class)->disableOriginalConstructor()->getMock();
39
        $hasherMock    = $this->getMockBuilder(IHasher::class)->disableOriginalConstructor()->getMock();
40
41
        $container = new Container();
42
        $container->bindInstance(IEncrypter::class, $encrypterMock);
43
        $container->bindInstance(IHasher::class, $hasherMock);
44
45
        $this->sut->registerBindings($container);
46
47
        $actual = $container->resolve(Crypto::class);
48
        $this->assertInstanceOf(Crypto::class, $actual);
49
    }
50
}
51