diff --git a/tests/ShortcodeTest.php b/tests/ShortcodeTest.php index 624afcd..5164fca 100644 --- a/tests/ShortcodeTest.php +++ b/tests/ShortcodeTest.php @@ -201,9 +201,28 @@ public function test_get_classes(): void */ public function test_get_namespaced_classes(): void { - $namespacedClasses = Shortcode::getNamespacedClasses(); + $name = 'TestGetNamespacedClasses'; + $path = $this->app->path('Shortcodes').'/'.$name.'.php'; - $this->assertInstanceOf(Collection::class, $namespacedClasses); + try { + $this->artisan('make:shortcode', ['name' => $name])->assertExitCode(0); + + Shortcode::clearCache(); + + $namespacedClasses = Shortcode::getNamespacedClasses(); + + $this->assertInstanceOf(Collection::class, $namespacedClasses); + + $expectedClass = app()->getNamespace().'Shortcodes\\'.$name; + + $this->assertContains($expectedClass, $namespacedClasses->toArray()); + } finally { + if (file_exists($path)) { + unlink($path); + } + + Shortcode::clearCache(); + } } /** @@ -211,9 +230,31 @@ public function test_get_namespaced_classes(): void */ public function test_get_instantiated_classes(): void { - $instances = Shortcode::getInstantiatedClasses(); + $name = 'TestGetInstantiatedClasses'; + $path = $this->app->path('Shortcodes').'/'.$name.'.php'; - $this->assertInstanceOf(Collection::class, $instances); + try { + $this->artisan('make:shortcode', ['name' => $name])->assertExitCode(0); + + require_once $path; + + Shortcode::clearCache(); + + $instances = Shortcode::getInstantiatedClasses(); + + $this->assertInstanceOf(Collection::class, $instances); + $this->assertNotEmpty($instances); + + $instances->each(function ($instance) { + $this->assertInstanceOf(Shortcode::class, $instance); + }); + } finally { + if (file_exists($path)) { + unlink($path); + } + + Shortcode::clearCache(); + } } /**