|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace RectorLaravel\Tests\Sets; |
| 4 | + |
| 5 | +use PHPUnit\Framework\Assert; |
| 6 | +use PHPUnit\Framework\TestCase; |
| 7 | +use Rector\Set\Contract\SetInterface; |
| 8 | +use RectorLaravel\Set\LaravelSetList; |
| 9 | +use RectorLaravel\Set\LaravelSetProvider; |
| 10 | + |
| 11 | +final class LaravelSetProviderTest extends TestCase |
| 12 | +{ |
| 13 | + private const LARAVEL_VERSION_SETS = [ |
| 14 | + LaravelSetList::LARAVEL_50, |
| 15 | + LaravelSetList::LARAVEL_51, |
| 16 | + LaravelSetList::LARAVEL_52, |
| 17 | + LaravelSetList::LARAVEL_53, |
| 18 | + LaravelSetList::LARAVEL_54, |
| 19 | + LaravelSetList::LARAVEL_55, |
| 20 | + LaravelSetList::LARAVEL_56, |
| 21 | + LaravelSetList::LARAVEL_57, |
| 22 | + LaravelSetList::LARAVEL_58, |
| 23 | + LaravelSetList::LARAVEL_60, |
| 24 | + LaravelSetList::LARAVEL_70, |
| 25 | + LaravelSetList::LARAVEL_80, |
| 26 | + LaravelSetList::LARAVEL_90, |
| 27 | + LaravelSetList::LARAVEL_100, |
| 28 | + LaravelSetList::LARAVEL_110, |
| 29 | + ]; |
| 30 | + |
| 31 | + public function testItProvidesSets(): void |
| 32 | + { |
| 33 | + $laravelSetProvider = new LaravelSetProvider(); |
| 34 | + |
| 35 | + Assert::assertContainsOnlyInstancesOf( |
| 36 | + SetInterface::class, |
| 37 | + $laravelSetProvider->provide() |
| 38 | + ); |
| 39 | + } |
| 40 | + |
| 41 | + public function testItReturnsUniqueSets(): void |
| 42 | + { |
| 43 | + $laravelSetProvider = new LaravelSetProvider(); |
| 44 | + |
| 45 | + $sets = $laravelSetProvider->provide(); |
| 46 | + |
| 47 | + $uniqueSets = array_unique(array_map(fn (SetInterface $set) => $set->getSetFilePath(), $sets)); |
| 48 | + |
| 49 | + Assert::assertCount(count($sets), $uniqueSets); |
| 50 | + } |
| 51 | + |
| 52 | + public function testItProvidesAllLaravelVersions(): void |
| 53 | + { |
| 54 | + $laravelSetProvider = new LaravelSetProvider(); |
| 55 | + |
| 56 | + $sets = $laravelSetProvider->provide(); |
| 57 | + |
| 58 | + $sets = array_filter( |
| 59 | + array_map( |
| 60 | + fn (SetInterface $set) => $set->getSetFilePath(), |
| 61 | + $sets |
| 62 | + ), |
| 63 | + fn (string $filePath) => in_array($filePath, self::LARAVEL_VERSION_SETS, true), |
| 64 | + ); |
| 65 | + |
| 66 | + Assert::assertCount(count(self::LARAVEL_VERSION_SETS), $sets); |
| 67 | + } |
| 68 | +} |
0 commit comments