diff --git a/config/entity-generator.php b/config/entity-generator.php index 6d498c76..2ecdfe47 100644 --- a/config/entity-generator.php +++ b/config/entity-generator.php @@ -7,12 +7,8 @@ 'requests' => 'app/Http/Requests', 'controllers' => 'app/Http/Controllers', 'migrations' => 'database/migrations', - 'seeders' => (version_compare(app()->version(), '8', '>=')) - ? 'database/seeders' - : 'database/seeds', - 'database_seeder' => (version_compare(app()->version(), '8', '>=')) - ? 'database/seeders/DatabaseSeeder.php' - : 'database/seeds/DatabaseSeeder.php', + 'seeders' => 'database/seeders', + 'database_seeder' => 'database/seeders/DatabaseSeeder.php', 'repositories' => 'app/Repositories', 'tests' => 'tests', 'routes' => 'routes/api.php', @@ -33,7 +29,6 @@ 'use_routes' => 'entity-generator::use_routes', 'factory' => 'entity-generator::factory', 'seeder' => 'entity-generator::seeder', - 'legacy_seeder' => 'entity-generator::legacy_seeder', 'database_empty_seeder' => 'entity-generator::database_empty_seeder', 'migration' => 'entity-generator::migration', 'dump' => 'entity-generator::dumps.pgsql', diff --git a/src/Generators/AbstractTestsGenerator.php b/src/Generators/AbstractTestsGenerator.php index 7f9aa283..3b32f081 100644 --- a/src/Generators/AbstractTestsGenerator.php +++ b/src/Generators/AbstractTestsGenerator.php @@ -44,15 +44,15 @@ protected function getFixturesPath($fileName = null): string protected function createDump(): void { + if (!$this->isStubExists('dump')) { + return; + } + $content = $this->getStub('dump', [ 'inserts' => $this->getInserts() ]); - $fixturePath = $this->getFixturesPath(); - - if (!file_exists($fixturePath)) { - mkdir($fixturePath, 0777, true); - } + $this->createFixtureFolder(); $dumpName = $this->getDumpName(); @@ -186,6 +186,8 @@ protected function generateFixtures(): void $object = $this->getFixtureValuesList($this->model); $entity = Str::snake($this->model); + $this->createFixtureFolder(); + foreach (self::FIXTURE_TYPES as $type => $modifications) { if ($this->isFixtureNeeded($type)) { foreach ($modifications as $modification) { @@ -241,6 +243,15 @@ protected function canGenerateUserData(): bool && $this->isMethodExists('User', 'getFields'); } + protected function createFixtureFolder(): void + { + $fixturePath = $this->getFixturesPath(); + + if (!file_exists($fixturePath)) { + mkdir($fixturePath, 0777, true); + } + } + abstract protected function getTestClassName(): string; abstract protected function isFixtureNeeded($type): bool; diff --git a/src/Generators/ControllerGenerator.php b/src/Generators/ControllerGenerator.php index 13ddd026..a114080c 100644 --- a/src/Generators/ControllerGenerator.php +++ b/src/Generators/ControllerGenerator.php @@ -23,11 +23,15 @@ public function generate(): void if (!$this->classExists('services', "{$this->model}Service")) { $this->throwFailureException( ClassNotExistsException::class, - "Cannot create {$this->model}Service cause {$this->model}Service does not exists.", + "Cannot create {$this->model}Controller cause {$this->model}Service does not exists.", "Create a {$this->model}Service by himself.", ); } + if (!$this->isStubExists('controller')) { + return; + } + $controllerContent = $this->getControllerContent($this->model); $this->saveClass('controllers', "{$this->model}Controller", $controllerContent); @@ -61,8 +65,10 @@ protected function createRoutes(): void ); } - $this->addUseController($routesPath); - $this->addRoutes($routesPath); + if ($this->isStubExists('routes') && $this->isStubExists('use_routes')) { + $this->addUseController($routesPath); + $this->addRoutes($routesPath); + } } protected function addRoutes($routesPath): string diff --git a/src/Generators/EntityGenerator.php b/src/Generators/EntityGenerator.php index 937c11a4..faf4c2f6 100644 --- a/src/Generators/EntityGenerator.php +++ b/src/Generators/EntityGenerator.php @@ -7,6 +7,7 @@ use Illuminate\Support\Arr; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; +use RonasIT\Support\Events\WarningEvent; use RonasIT\Support\Exceptions\ClassNotExistsException; use Throwable; use ReflectionMethod; @@ -211,4 +212,23 @@ protected function getModelClass(string $model): string return "{$modelNamespace}\\{$model}"; } + + protected function isStubExists(string $stubName): bool + { + $config = "entity-generator.stubs.{$stubName}"; + + $stubPath = config($config); + + if (!view()->exists($stubPath)) { + $generationType = Str::replace('_', ' ', $stubName); + + $message = "Generation of {$generationType} has been skipped cause the view {$stubPath} from the config {$config} is not exists. Please check that config has the correct view name value."; + + event(new WarningEvent($message)); + + return false; + } + + return true; + } } diff --git a/src/Generators/FactoryGenerator.php b/src/Generators/FactoryGenerator.php index 59ec4c3d..fe18caf8 100644 --- a/src/Generators/FactoryGenerator.php +++ b/src/Generators/FactoryGenerator.php @@ -43,6 +43,10 @@ public function generate(): void ); } + if (!$this->isStubExists('factory')) { + return; + } + $factoryContent = $this->getStub('factory', [ 'namespace' => $this->getOrCreateNamespace('factories'), 'entity' => $this->model, @@ -113,4 +117,4 @@ protected function prepareFields(): array return $result; } -} +} \ No newline at end of file diff --git a/src/Generators/MigrationGenerator.php b/src/Generators/MigrationGenerator.php index 4e808579..97d08e32 100644 --- a/src/Generators/MigrationGenerator.php +++ b/src/Generators/MigrationGenerator.php @@ -10,6 +10,10 @@ class MigrationGenerator extends EntityGenerator { public function generate(): void { + if (!$this->isStubExists('migration')) { + return; + } + $entities = $this->getTableName($this->model); $content = $this->getStub('migration', [ diff --git a/src/Generators/ModelGenerator.php b/src/Generators/ModelGenerator.php index 2de0708c..e113a386 100644 --- a/src/Generators/ModelGenerator.php +++ b/src/Generators/ModelGenerator.php @@ -25,12 +25,14 @@ public function generate(): void ); } - $this->prepareRelatedModels(); - $modelContent = $this->getNewModelContent(); + if ($this->isStubExists('model') && ($this->isStubExists('relation') || empty($this->relations))) { + $this->prepareRelatedModels(); + $modelContent = $this->getNewModelContent(); - $this->saveClass('models', $this->model, $modelContent); + $this->saveClass('models', $this->model, $modelContent); - event(new SuccessCreateMessage("Created a new Model: {$this->model}")); + event(new SuccessCreateMessage("Created a new Model: {$this->model}")); + } } protected function getNewModelContent(): string diff --git a/src/Generators/NovaResourceGenerator.php b/src/Generators/NovaResourceGenerator.php index c1d68bd6..ae6a0616 100644 --- a/src/Generators/NovaResourceGenerator.php +++ b/src/Generators/NovaResourceGenerator.php @@ -70,6 +70,10 @@ public function generate(): void ); } + if (!$this->isStubExists('nova_resource')) { + return; + } + $novaFields = $this->prepareNovaFields(); $fileContent = $this->getStub('nova_resource', [ diff --git a/src/Generators/NovaTestGenerator.php b/src/Generators/NovaTestGenerator.php index eafac93b..080336ba 100644 --- a/src/Generators/NovaTestGenerator.php +++ b/src/Generators/NovaTestGenerator.php @@ -40,6 +40,10 @@ public function generate(): void public function generateTests(): void { + if (!$this->isStubExists('nova_test')) { + return; + } + $actions = $this->getActions(); $filters = $this->collectFilters(); diff --git a/src/Generators/RepositoryGenerator.php b/src/Generators/RepositoryGenerator.php index fc639a65..a046397f 100644 --- a/src/Generators/RepositoryGenerator.php +++ b/src/Generators/RepositoryGenerator.php @@ -17,6 +17,10 @@ public function generate(): void ); } + if (!$this->isStubExists('repository')) { + return; + } + $repositoryContent = $this->getStub('repository', [ 'entity' => $this->model, 'namespace' => $this->getOrCreateNamespace('repositories'), diff --git a/src/Generators/RequestsGenerator.php b/src/Generators/RequestsGenerator.php index f75b209a..702eba5c 100644 --- a/src/Generators/RequestsGenerator.php +++ b/src/Generators/RequestsGenerator.php @@ -27,6 +27,10 @@ public function setRelations($relations) public function generate(): void { + if (!$this->isStubExists('request')) { + return; + } + if (in_array('R', $this->crudOptions)) { $this->createRequest( self::GET_METHOD, diff --git a/src/Generators/ResourceGenerator.php b/src/Generators/ResourceGenerator.php index f8ea5912..6a369781 100644 --- a/src/Generators/ResourceGenerator.php +++ b/src/Generators/ResourceGenerator.php @@ -9,8 +9,13 @@ class ResourceGenerator extends EntityGenerator { public function generate(): void { - $this->generateResource(); - $this->generateCollectionResource(); + if ($this->isStubExists('resource')) { + $this->generateResource(); + + if ($this->isStubExists('collection_resource')) { + $this->generateCollectionResource(); + } + } } public function generateCollectionResource(): void diff --git a/src/Generators/SeederGenerator.php b/src/Generators/SeederGenerator.php index d18d1c03..5872e11f 100644 --- a/src/Generators/SeederGenerator.php +++ b/src/Generators/SeederGenerator.php @@ -22,6 +22,10 @@ public function __construct() public function generate(): void { + if (!$this->isStubExists('seeder') || !$this->isStubExists('database_empty_seeder')) { + return; + } + if (!file_exists($this->seedsPath)) { mkdir($this->seedsPath); } @@ -43,20 +47,9 @@ public function generate(): void protected function createDatabaseSeeder(): void { - $stubPath = config('entity-generator.stubs.database_empty_seeder'); - - //@TODO: remove after implementing https://github.com/RonasIT/laravel-entity-generator/issues/93 - if ($stubPath === 'entity-generator::database_seed_empty') { - $stubPath = 'entity-generator::database_empty_seeder'; - - $message = "You are using the deprecated value for 'entity-generator.stubs.database_empty_seeder' config. Please use 'entity-generator::database_empty_seeder'."; - - event(new WarningEvent($message)); - } - - $content = "getStub('database_empty_seeder', [ 'namespace' => $this->getOrCreateNamespace('seeders') - ])->render(); + ]); file_put_contents($this->databaseSeederPath, $content); @@ -67,16 +60,12 @@ protected function createDatabaseSeeder(): void protected function createEntitySeeder(): void { - $seeder = (version_compare(app()->version(), '8', '>=')) ? 'seeder' : 'legacy_seeder'; - - $stubPath = config("entity-generator.stubs.{$seeder}"); - - $content = "with([ + $content = "getStub('seeder', [ 'entity' => $this->model, 'relations' => $this->relations, 'namespace' => $this->getOrCreateNamespace('seeders'), - 'modelsNamespace' => $this->getOrCreateNamespace('models') - ])->render(); + 'modelsNamespace' => $this->getOrCreateNamespace('models'), + ]); $seederPath = "{$this->seedsPath}/{$this->model}Seeder.php"; diff --git a/src/Generators/ServiceGenerator.php b/src/Generators/ServiceGenerator.php index b59652b5..df126329 100644 --- a/src/Generators/ServiceGenerator.php +++ b/src/Generators/ServiceGenerator.php @@ -36,6 +36,10 @@ public function generate(): void } } + if (!$this->isStubExists($stub)) { + return; + } + $serviceContent = $this->getStub($stub, [ 'entity' => $this->model, 'fields' => $this->getFields(), diff --git a/src/Generators/TestsGenerator.php b/src/Generators/TestsGenerator.php index a5f08a0e..25ddbf38 100644 --- a/src/Generators/TestsGenerator.php +++ b/src/Generators/TestsGenerator.php @@ -50,6 +50,10 @@ protected function generateFixture($fixtureName, $data): void protected function generateTests(): void { + if (!$this->isStubExists('test')) { + return; + } + $content = $this->getStub('test', [ 'entity' => $this->model, 'databaseTableName' => $this->getTableName($this->model), diff --git a/src/Generators/TranslationsGenerator.php b/src/Generators/TranslationsGenerator.php index 30b54a38..155e37f3 100644 --- a/src/Generators/TranslationsGenerator.php +++ b/src/Generators/TranslationsGenerator.php @@ -18,11 +18,11 @@ public function __construct() public function generate(): void { - if (!file_exists($this->translationPath)) { + if (!file_exists($this->translationPath) && $this->isStubExists('validation')) { $this->createTranslate(); } - if ($this->isTranslationMissed('validation.exceptions.not_found')) { + if ($this->isTranslationMissed('validation.exceptions.not_found') && $this->isStubExists('translation_not_found')) { $this->appendNotFoundException(); } } diff --git a/stubs/legacy_seeder.blade.php b/stubs/legacy_seeder.blade.php deleted file mode 100644 index 50a5c6dc..00000000 --- a/stubs/legacy_seeder.blade.php +++ /dev/null @@ -1,44 +0,0 @@ -namespace {{$namespace}}; - -use Illuminate\Database\Seeder; - -class {{$entity}}Seeder extends Seeder -{ - public function run() - { -@if (empty($relations['belongsTo'])) -@if(empty(array_filter($relations))) - factory(\{{$modelsNamespace}}\{{$entity}}::class)->create([]); -@else - ${{strtolower($entity)}} = factory(\{{$modelsNamespace}}\{{$entity}}::class)->create([]); -@endif -@else -@if(empty(array_filter($relations))) - ${{strtolower($entity)}} = factory(\{{$modelsNamespace}}\{{$entity}}::class)->create([ -@else - factory(\{{$modelsNamespace}}\{{$entity}}::class)->create([ -@endif -@foreach($relations['belongsTo'] as $relation) - '{{strtolower($relation)}}_id' => factory(\{{$modelsNamespace}}\{{$relation}}::class)->create()->id, -@endforeach - ]); -@endif - -@foreach($relations['hasOne'] as $relation) - factory(\{{$modelsNamespace}}\{{$relation}}::class)->create([ - '{{strtolower($entity)}}_id' => ${{strtolower($entity)}}->id, - ]); - -@endforeach -@foreach($relations['hasMany'] as $relation) - factory(\{{$modelsNamespace}}\{{$relation}}::class, 10)->create()->each([ - '{{strtolower($entity)}}_id' => ${{strtolower($entity)}}->id, - ]); - -@endforeach -@foreach($relations['belongsToMany'] as $relation) - $list = factory(\{{$modelsNamespace}}\{{$relation}}::class, 10)->create()->pluck('id'); - ${{strtolower($entity)}}->{{strtolower($relation)}}s()->sync($list); -@endforeach - } -} \ No newline at end of file diff --git a/tests/ControllerGeneratorTest.php b/tests/ControllerGeneratorTest.php index 6b887ad1..221c363c 100644 --- a/tests/ControllerGeneratorTest.php +++ b/tests/ControllerGeneratorTest.php @@ -4,7 +4,9 @@ use Illuminate\Contracts\Filesystem\FileNotFoundException; use Illuminate\Support\Facades\Event; +use Illuminate\Support\Facades\View; use RonasIT\Support\Events\SuccessCreateMessage; +use RonasIT\Support\Events\WarningEvent; use RonasIT\Support\Exceptions\ClassAlreadyExistsException; use RonasIT\Support\Exceptions\ClassNotExistsException; use RonasIT\Support\Generators\ControllerGenerator; @@ -46,7 +48,7 @@ public function testModelServiceNotExists() $this->assertExceptionThrew( className: ClassNotExistsException::class, - message: 'Cannot create PostService cause PostService does not exists. Create a PostService by himself.', + message: 'Cannot create PostController cause PostService does not exists. Create a PostService by himself.', ); app(ControllerGenerator::class) @@ -69,6 +71,69 @@ className: FileNotFoundException::class, ->generate(); } + public function testControllerStubNotExist() + { + $this->mockFilesystem(); + + View::shouldReceive('exists') + ->with('entity-generator::controller') + ->once() + ->andReturnFalse(); + + app(ControllerGenerator::class) + ->setModel('Post') + ->setCrudOptions(['C', 'R', 'U', 'D']) + ->generate(); + + $this->assertGeneratedFileEquals('empty_api.php', 'routes/api.php'); + $this->assertFileDoesNotExist('app/Http/Controllers/PostController.php'); + + $this->assertEventPushed( + className: WarningEvent::class, + message: 'Generation of controller has been skipped cause the view entity-generator::controller from the config entity-generator.stubs.controller is not exists. Please check that config has the correct view name value.', + ); + } + + public function testRoutesStubNotExist() + { + $this->mockFilesystem(); + + config(['entity-generator.stubs.routes' => 'incorrect_stub']); + + app(ControllerGenerator::class) + ->setModel('Post') + ->setCrudOptions(['C', 'R', 'U', 'D']) + ->generate(); + + $this->assertGeneratedFileEquals('created_controller.php', 'app/Http/Controllers/PostController.php'); + $this->assertGeneratedFileEquals('empty_api.php', 'routes/api.php'); + + $this->assertEventPushedChain([ + WarningEvent::class => 'Generation of routes has been skipped cause the view incorrect_stub from the config entity-generator.stubs.routes is not exists. Please check that config has the correct view name value.', + SuccessCreateMessage::class => 'Created a new Controller: PostController', + ]); + } + + public function testUseRoutesStubNotExist() + { + $this->mockFilesystem(); + + config(['entity-generator.stubs.use_routes' => 'incorrect_stub']); + + app(ControllerGenerator::class) + ->setModel('Post') + ->setCrudOptions(['C', 'R', 'U', 'D']) + ->generate(); + + $this->assertGeneratedFileEquals('created_controller.php', 'app/Http/Controllers/PostController.php'); + $this->assertGeneratedFileEquals('empty_api.php', 'routes/api.php'); + + $this->assertEventPushedChain([ + WarningEvent::class => 'Generation of use routes has been skipped cause the view incorrect_stub from the config entity-generator.stubs.use_routes is not exists. Please check that config has the correct view name value.', + SuccessCreateMessage::class => 'Created a new Controller: PostController', + ]); + } + public function testSuccess() { $this->mockFilesystem(); diff --git a/tests/NovaResourceGeneratorTest.php b/tests/NovaResourceGeneratorTest.php index 292b0c69..4e7710e1 100644 --- a/tests/NovaResourceGeneratorTest.php +++ b/tests/NovaResourceGeneratorTest.php @@ -4,6 +4,7 @@ use Illuminate\Support\Facades\Event; use RonasIT\Support\Events\SuccessCreateMessage; +use RonasIT\Support\Events\WarningEvent; use RonasIT\Support\Exceptions\ClassAlreadyExistsException; use RonasIT\Support\Exceptions\ClassNotExistsException; use RonasIT\Support\Generators\NovaResourceGenerator; @@ -68,6 +69,29 @@ className: ClassAlreadyExistsException::class, ->generate(); } + public function testNovaResourceStubNotExist() + { + $this->mockNovaServiceProviderExists(); + + $this->mockFilesystem(); + + $fields = $this->getJsonFixture('command_line_fields.json'); + + config(['entity-generator.stubs.nova_resource' => 'incorrect_stub']); + + app(NovaResourceGenerator::class) + ->setModel('Post') + ->setFields($fields) + ->generate(); + + $this->assertFileDoesNotExist('app/Nova/PostResource.php'); + + $this->assertEventPushed( + className: WarningEvent::class, + message: 'Generation of nova resource has been skipped cause the view incorrect_stub from the config entity-generator.stubs.nova_resource is not exists. Please check that config has the correct view name value.', + ); + } + public function testSuccess() { $this->mockNovaServiceProviderExists(); diff --git a/tests/NovaTestGeneratorTest.php b/tests/NovaTestGeneratorTest.php index afbb9441..be1a052b 100644 --- a/tests/NovaTestGeneratorTest.php +++ b/tests/NovaTestGeneratorTest.php @@ -5,6 +5,7 @@ use RonasIT\Support\Tests\Support\Models\WelcomeBonus; use Illuminate\Support\Facades\Event; use RonasIT\Support\Events\SuccessCreateMessage; +use RonasIT\Support\Events\WarningEvent; use RonasIT\Support\Exceptions\ClassAlreadyExistsException; use RonasIT\Support\Exceptions\ClassNotExistsException; use RonasIT\Support\Generators\NovaTestGenerator; @@ -55,6 +56,74 @@ className: ClassAlreadyExistsException::class, ->generate(); } + public function testNovaTestStubNotExist() + { + Event::fake(); + + $this->mockNativeGeneratorFunctions( + $this->nativeClassExistsMethodCall([NovaServiceProvider::class, true]), + $this->nativeClassExistsMethodCall([WelcomeBonus::class, true]), + ); + + $this->mockFilesystem(); + $this->mockNovaRequestClassCall(); + + config([ + 'entity-generator.paths.models' => 'RonasIT/Support/Tests/Support/Models', + 'entity-generator.stubs.nova_test' => 'incorrect_stub', + ]); + + $mock = Mockery::mock('alias:Illuminate\Support\Facades\DB'); + $mock + ->shouldReceive('beginTransaction', 'rollBack') + ->once(); + + app(NovaTestGenerator::class) + ->setModel('WelcomeBonus') + ->generate(); + + $this->assertFileDoesNotExist('tests/NovaWelcomeBonusTest.php'); + $this->assertGeneratedFileEquals('dump.sql', 'tests/fixtures/NovaWelcomeBonusTest/nova_welcome_bonus_dump.sql'); + $this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_request.json'); + $this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_response.json'); + $this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/update_welcome_bonus_request.json'); + + $this->assertEventPushed( + className: WarningEvent::class, + message: 'Generation of nova test has been skipped cause the view incorrect_stub from the config entity-generator.stubs.nova_test is not exists. Please check that config has the correct view name value.', + ); + } + + public function testDumpStubNotExist() + { + Event::fake(); + + $this->mockNovaServiceProviderExists(); + + $this->mockFilesystem(); + $this->mockNovaRequestClassCall(); + + config([ + 'entity-generator.paths.models' => 'RonasIT/Support/Tests/Support/Models', + 'entity-generator.stubs.dump' => 'incorrect_stub', + ]); + + app(NovaTestGenerator::class) + ->setModel('WelcomeBonus') + ->generate(); + + $this->assertGeneratedFileEquals('created_resource_test.php', 'tests/NovaWelcomeBonusTest.php'); + $this->assertFileDoesNotExist('tests/fixtures/NovaWelcomeBonusTest/nova_welcome_bonus_dump.sql'); + $this->assertGeneratedFileEquals('create_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_request.json'); + $this->assertGeneratedFileEquals('create_welcome_bonus_response.json', 'tests/fixtures/NovaWelcomeBonusTest/create_welcome_bonus_response.json'); + $this->assertGeneratedFileEquals('update_welcome_bonus_request.json', 'tests/fixtures/NovaWelcomeBonusTest/update_welcome_bonus_request.json'); + + $this->assertEventPushed( + className: WarningEvent::class, + message: 'Generation of dump has been skipped cause the view incorrect_stub from the config entity-generator.stubs.dump is not exists. Please check that config has the correct view name value.', + ); + } + public function testSuccess() { config([ diff --git a/tests/SeederGeneratorTest.php b/tests/SeederGeneratorTest.php index 375917c5..167b4821 100644 --- a/tests/SeederGeneratorTest.php +++ b/tests/SeederGeneratorTest.php @@ -36,13 +36,11 @@ public function testCreateSeeder() $this->assertGeneratedFileEquals('post_seeder.php', 'database/seeders/PostSeeder.php'); } - public function testCreateSeederWithOldConfig() + public function testCreateSeederEmptyDatabaseSeederStubNotExist() { $this->mockFilesystem(); - config([ - 'entity-generator.stubs.database_empty_seeder' => 'entity-generator::database_seed_empty', - ]); + config(['entity-generator.stubs.database_empty_seeder' => 'entity-generator::database_seed_empty']); app(SeederGenerator::class) ->setRelations([ @@ -56,7 +54,35 @@ public function testCreateSeederWithOldConfig() $this->assertEventPushed( className: WarningEvent::class, - message: "You are using the deprecated value for 'entity-generator.stubs.database_empty_seeder' config. Please use 'entity-generator::database_empty_seeder'.", + message: 'Generation of database empty seeder has been skipped cause the view entity-generator::database_seed_empty from the config entity-generator.stubs.database_empty_seeder is not exists. Please check that config has the correct view name value.', ); + + $this->assertFileDoesNotExist("{$this->generatedFileBasePath}/database/seeders/PostSeeder.php"); + $this->assertFileDoesNotExist('database/seeders/DatabaseSeeder.php'); + } + + public function testCreateSeederEntityDatabaseSeederStubNotExist() + { + $this->mockFilesystem(); + + config(['entity-generator.stubs.seeder' => 'incorrect_stub']); + + app(SeederGenerator::class) + ->setRelations([ + 'hasOne' => [], + 'belongsTo' => ['User'], + 'hasMany' => ['Comment'], + 'belongsToMany' => [] + ]) + ->setModel('Post') + ->generate(); + + $this->assertEventPushed( + className: WarningEvent::class, + message: 'Generation of seeder has been skipped cause the view incorrect_stub from the config entity-generator.stubs.seeder is not exists. Please check that config has the correct view name value.', + ); + + $this->assertFileDoesNotExist("{$this->generatedFileBasePath}/database/seeders/PostSeeder.php"); + $this->assertFileDoesNotExist('database/seeders/DatabaseSeeder.php'); } } \ No newline at end of file diff --git a/tests/fixtures/ControllerGeneratorTest/empty_api.php b/tests/fixtures/ControllerGeneratorTest/empty_api.php new file mode 100644 index 00000000..a8143662 --- /dev/null +++ b/tests/fixtures/ControllerGeneratorTest/empty_api.php @@ -0,0 +1 @@ +