@@ -41,24 +41,40 @@ className: ClassNotExistsException::class,
4141 ->generate ();
4242 }
4343
44- public function testGenerateToManyResources (): void
44+ public function testGenerateResourceWithSetResourceNameNotExists ()
45+ {
46+ $ this ->assertExceptionThrew (
47+ className: ClassNotExistsException::class,
48+ message: 'Cannot create NovaWelcomeBonusDraftResourceTest cause WelcomeBonusDraftResource Nova resource does not exist. Create WelcomeBonusDraftResource Nova resource. ' ,
49+ );
50+
51+ $ this ->mockNativeGeneratorFunctions (
52+ $ this ->nativeClassExistsMethodCall ([NovaServiceProvider::class, true ]),
53+ $ this ->nativeIsSubClassOfMethodCall (['App\Nova\Resources\WelcomeBonusDraftResource ' , 'Laravel \\Nova \\Resource ' ], false ),
54+ );
55+
56+ app (NovaTestGenerator::class)
57+ ->setModel ('Post ' )
58+ ->setMetaData (['resource_name ' => 'Resources\WelcomeBonusDraftResource ' ])
59+ ->generate ();
60+ }
61+
62+ public function testGenerateNovaTestWithSetResourceNameAlreadyExists ()
4563 {
4664 $ this ->mockNovaServiceProviderExists ();
4765
4866 $ this ->mockClass (NovaTestGenerator::class, [
49- $ this ->getCommonNovaResourcesMock ([
50- 'BasePostResource ' ,
51- 'PublishPostResource ' ,
52- ]),
67+ $ this ->classExistsMethodCall (['nova ' , 'NovaPostResourceTest ' ]),
5368 ]);
5469
5570 $ this ->assertExceptionThrew (
56- className: EntityCreateException ::class,
57- message: ' Cannot create NovaPostResourceTest cause was found a lot of suitable resources: BasePostResource, PublishPostResource. Make test by yourself. ' ,
71+ className: ResourceAlreadyExistsException ::class,
72+ message: " Cannot create NovaPostResourceTest cause it already exists. Remove app/Nova/NovaPostResourceTest.php and run command again. " ,
5873 );
5974
6075 app (NovaTestGenerator::class)
6176 ->setModel ('Post ' )
77+ ->setMetaData (['resource_name ' => 'PostResource ' ])
6278 ->generate ();
6379 }
6480
@@ -72,7 +88,29 @@ public function testGenerateNovaTestAlreadyExists()
7288
7389 $ this ->assertExceptionThrew (
7490 className: ResourceAlreadyExistsException::class,
75- message: "Cannot create NovaPostResourceTest cause it already exists. Remove vfs://root/app/Nova/NovaPostResourceTest.php and run command again. " ,
91+ message: "Cannot create NovaPostResourceTest cause it already exists. Remove app/Nova/NovaPostResourceTest.php and run command again. " ,
92+ );
93+
94+ app (NovaTestGenerator::class)
95+ ->setModel ('Post ' )
96+ ->setMetaData (['resource_name ' => 'PostResource ' ])
97+ ->generate ();
98+ }
99+
100+ public function testGenerateToManyResources (): void
101+ {
102+ $ this ->mockNovaServiceProviderExists ();
103+
104+ $ this ->mockClass (NovaTestGenerator::class, [
105+ $ this ->getCommonNovaResourcesMock ([
106+ 'BasePostResource ' ,
107+ 'PublishPostResource ' ,
108+ ]),
109+ ]);
110+
111+ $ this ->assertExceptionThrew (
112+ className: EntityCreateException::class,
113+ message: 'Cannot create NovaPostResourceTest cause was found a lot of suitable resources: BasePostResource, PublishPostResource. Please, use --resource-name option. ' ,
76114 );
77115
78116 app (NovaTestGenerator::class)
@@ -89,7 +127,7 @@ public function testNovaTestStubNotExist()
89127
90128 $ this ->mockNativeGeneratorFunctions (
91129 $ this ->nativeClassExistsMethodCall ([NovaServiceProvider::class, true ]),
92- $ this ->nativeClassExistsMethodCall ([WelcomeBonus::class, true ]),
130+ $ this ->nativeClassExistsMethodCall ([' RonasIT\Support\Tests\Support\Models\ WelcomeBonus' ]),
93131 );
94132
95133 $ this ->mockClass (NovaTestGenerator::class, [
@@ -139,7 +177,7 @@ public function testDumpStubNotExist()
139177 ->setModel ('WelcomeBonus ' )
140178 ->generate ();
141179
142- $ this ->assertGeneratedFileEquals ('created_resource_test .php ' , 'tests/NovaWelcomeBonusResourceTest.php ' );
180+ $ this ->assertGeneratedFileEquals ('created_resource_test_without_set_resource_name .php ' , 'tests/NovaWelcomeBonusResourceTest.php ' );
143181 $ this ->assertFileDoesNotExist ('tests/fixtures/NovaWelcomeBonusResourceTest/nova_welcome_bonus_resource_dump.sql ' );
144182 $ this ->assertGeneratedFileEquals ('create_welcome_bonus_request.json ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_request.json ' );
145183 $ this ->assertGeneratedFileEquals ('create_welcome_bonus_response.json ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_response.json ' );
@@ -176,13 +214,41 @@ public function testSuccess()
176214 ->setModel ('WelcomeBonus ' )
177215 ->generate ();
178216
179- $ this ->assertGeneratedFileEquals ('created_resource_test .php ' , 'tests/NovaWelcomeBonusResourceTest.php ' );
217+ $ this ->assertGeneratedFileEquals ('created_resource_test_without_set_resource_name .php ' , 'tests/NovaWelcomeBonusResourceTest.php ' );
180218 $ this ->assertGeneratedFileEquals ('dump.sql ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/nova_welcome_bonus_resource_dump.sql ' );
181219 $ this ->assertGeneratedFileEquals ('create_welcome_bonus_request.json ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_request.json ' );
182220 $ this ->assertGeneratedFileEquals ('create_welcome_bonus_response.json ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/create_welcome_bonus_resource_response.json ' );
183221 $ this ->assertGeneratedFileEquals ('update_welcome_bonus_request.json ' , 'tests/fixtures/NovaWelcomeBonusResourceTest/update_welcome_bonus_resource_request.json ' );
184222 }
185223
224+ public function testSuccessWithSetResourceName ()
225+ {
226+ config ([
227+ 'entity-generator.paths.models ' => 'RonasIT/Support/Tests/Support/Models ' ,
228+ ]);
229+
230+ $ this ->mockDBTransactionStartRollback ();
231+
232+ $ this ->mockNativeGeneratorFunctions (
233+ $ this ->nativeClassExistsMethodCall ([NovaServiceProvider::class, true ]),
234+ $ this ->nativeClassExistsMethodCall ([WelcomeBonus::class, true ]),
235+ $ this ->nativeIsSubClassOfMethodCall (['App\Nova\Resources\WelcomeBonusDraftResource ' , 'Laravel \\Nova \\Resource ' ]),
236+ );
237+
238+ $ this ->mockNovaRequestClassCall ();
239+
240+ app (NovaTestGenerator::class)
241+ ->setModel ('WelcomeBonus ' )
242+ ->setMetaData (['resource_name ' => 'Resources\WelcomeBonusDraftResource ' ])
243+ ->generate ();
244+
245+ $ this ->assertGeneratedFileEquals ('created_resource_test.php ' , 'tests/NovaWelcomeBonusDraftResourceTest.php ' );
246+ $ this ->assertGeneratedFileEquals ('dump.sql ' , 'tests/fixtures/NovaWelcomeBonusDraftResourceTest/nova_welcome_bonus_draft_resource_dump.sql ' );
247+ $ this ->assertGeneratedFileEquals ('create_welcome_bonus_request.json ' , 'tests/fixtures/NovaWelcomeBonusDraftResourceTest/create_welcome_bonus_draft_resource_request.json ' );
248+ $ this ->assertGeneratedFileEquals ('create_welcome_bonus_response.json ' , 'tests/fixtures/NovaWelcomeBonusDraftResourceTest/create_welcome_bonus_draft_resource_response.json ' );
249+ $ this ->assertGeneratedFileEquals ('update_welcome_bonus_request.json ' , 'tests/fixtures/NovaWelcomeBonusDraftResourceTest/update_welcome_bonus_draft_resource_request.json ' );
250+ }
251+
186252 public function testGenerateNovaPackageNotInstall ()
187253 {
188254 $ this ->mockNovaServiceProviderExists (false );
0 commit comments