1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
<?php
namespace Integration\Generators;
use Illuminate\Tests\Integration\Generators\TestCase;
class EnumMakeCommandTest extends TestCase
{
protected $files = [
'app/IntEnum.php',
'app/StatusEnum.php',
'app/StringEnum.php',
'app/*/OrderStatusEnum.php',
];
public function testItCanGenerateEnumFile()
{
$this->artisan('make:enum', ['name' => 'StatusEnum'])
->assertExitCode(0);
$this->assertFileContains([
'namespace App;',
'enum StatusEnum',
], 'app/StatusEnum.php');
}
public function testItCanGenerateEnumFileWithString()
{
$this->artisan('make:enum', ['name' => 'StringEnum', '--string' => true])
->assertExitCode(0);
$this->assertFileContains([
'namespace App;',
'enum StringEnum: string',
], 'app/StringEnum.php');
}
public function testItCanGenerateEnumFileWithInt()
{
$this->artisan('make:enum', ['name' => 'IntEnum', '--int' => true])
->assertExitCode(0);
$this->assertFileContains([
'namespace App;',
'enum IntEnum: int',
], 'app/IntEnum.php');
}
public function testItCanGenerateEnumFileInEnumsFolder()
{
$enumsFolderPath = app_path('Enums');
/** @var \Illuminate\Filesystem\Filesystem $files */
$files = $this->app['files'];
$files->ensureDirectoryExists($enumsFolderPath);
$this->artisan('make:enum', ['name' => 'OrderStatusEnum'])
->assertExitCode(0);
$this->assertFileContains([
'namespace App\Enums;',
'enum OrderStatusEnum',
], 'app/Enums/OrderStatusEnum.php');
$files->deleteDirectory($enumsFolderPath);
}
public function testItCanGenerateEnumFileInEnumerationsFolder()
{
$enumerationsFolderPath = app_path('Enumerations');
/** @var \Illuminate\Filesystem\Filesystem $files */
$files = $this->app['files'];
$files->ensureDirectoryExists($enumerationsFolderPath);
$this->artisan('make:enum', ['name' => 'OrderStatusEnum'])
->assertExitCode(0);
$this->assertFileContains([
'namespace App\Enumerations;',
'enum OrderStatusEnum',
], 'app/Enumerations/OrderStatusEnum.php');
$files->deleteDirectory($enumerationsFolderPath);
}
}
|