Skip to content

Commit fff7dbb

Browse files
feat: architecture tests
Signed-off-by: Dusan Malusev <[email protected]>
1 parent a56c648 commit fff7dbb

File tree

9 files changed

+84
-20
lines changed

9 files changed

+84
-20
lines changed

phpunit.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
<testsuite name="Feature">
2929
<directory suffix="Test.php">./tests/Feature</directory>
3030
</testsuite>
31+
<testsuite name="Architecture">
32+
<directory suffix="Test.php">./tests/Architecture</directory>
33+
</testsuite>
3134
</testsuites>
3235
<php>
3336
<server name="APP_ENV" value="testing"/>

src/Console/GenerateCryptoKeysCommand.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,10 @@
44

55
namespace CodeLieutenant\LaravelCrypto\Console;
66

7-
use CodeLieutenant\LaravelCrypto\Keys\AppKey;
8-
use CodeLieutenant\LaravelCrypto\Keys\Blake2bHashingKey;
9-
use CodeLieutenant\LaravelCrypto\Keys\EdDSASignerKey;
107
use CodeLieutenant\LaravelCrypto\Keys\Generators\AppKeyGenerator;
118
use CodeLieutenant\LaravelCrypto\Keys\Generators\Blake2bHashingKeyGenerator;
129
use CodeLieutenant\LaravelCrypto\Keys\Generators\EdDSASignerKeyGenerator;
1310
use CodeLieutenant\LaravelCrypto\Keys\Generators\HmacKeyGenerator;
14-
use CodeLieutenant\LaravelCrypto\Keys\HmacKey;
1511
use Exception;
1612
use Illuminate\Console\Command;
1713
use Illuminate\Console\ConfirmableTrait;

src/Exceptions/KeyPathNotFound.php

Lines changed: 0 additions & 16 deletions
This file was deleted.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Illuminate\Console\Command;
6+
use Symfony\Component\Console\Attribute\AsCommand;
7+
8+
arch('commands')
9+
->expect('CodeLieutenant\LaravelCrypto\Console')
10+
->toHaveAttribute(AsCommand::class)
11+
->toExtend(Command::class)
12+
->toHaveMethod('handle')
13+
->toHaveSuffix('Command');
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
arch('contracts')
6+
->expect('CodeLieutenant\LaravelCrypto\Contracts')
7+
->toBeInterfaces();
8+
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use CodeLieutenant\LaravelCrypto\Contracts\KeyGeneration;
6+
use CodeLieutenant\LaravelCrypto\Encryption\AesGcm256Encryptor;
7+
use CodeLieutenant\LaravelCrypto\Encryption\Crypto;
8+
use CodeLieutenant\LaravelCrypto\Encryption\Encryption;
9+
use CodeLieutenant\LaravelCrypto\Encryption\XChaCha20Poly1305Encryptor;
10+
use Illuminate\Contracts\Encryption\Encrypter;
11+
use Illuminate\Contracts\Encryption\StringEncrypter;
12+
13+
arch('encryption xchacha')
14+
->expect(XChaCha20Poly1305Encryptor::class)
15+
->toImplement([Encrypter::class, StringEncrypter::class, KeyGeneration::class])
16+
->toBeClass()
17+
->toBeFinal();
18+
19+
arch('encryption aesgcm256')
20+
->expect(AesGcm256Encryptor::class)
21+
->toImplement([Encrypter::class, StringEncrypter::class, KeyGeneration::class])
22+
->toBeClass()
23+
->toBeFinal();
24+
25+
arch('encryption enum')
26+
->expect(Encryption::class)
27+
->toBeStringBackedEnum();
28+
29+
arch('encryption crypto')
30+
->expect(Crypto::class)
31+
->toBeTrait();

tests/Architecture/FacadesTest.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
use Illuminate\Support\Facades\Facade;
6+
7+
arch('facades')
8+
->expect('CodeLieutenant\LaravelCrypto\Facades')
9+
->toBeClasses()
10+
->toExtend(Facade::class);

tests/Architecture/GlobalTest.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
arch('globals')
6+
->expect(['dd', 'dump', 'ray'])
7+
->not->toBeUsed();
8+
9+
arch('strict types')
10+
->expect('CodeLieutenant\LaravelCrypto')
11+
->toUseStrictTypes();

tests/Architecture/TraitTest.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
arch('traits')
6+
->expect('CodeLieutenant\LaravelCrypto\Traits')
7+
->toBeTraits();
8+

0 commit comments

Comments
 (0)