You've already forked php-auth
generated from siteworxpro/Php-Template
Initial commit
This commit is contained in:
43
tests/ServiceProviders/AbstractServiceProvider.php
Normal file
43
tests/ServiceProviders/AbstractServiceProvider.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Siteworxpro\Tests\ServiceProviders;
|
||||
|
||||
use Illuminate\Container\Container;
|
||||
use Illuminate\Contracts\Container\BindingResolutionException;
|
||||
use Illuminate\Support\ServiceProvider;
|
||||
use Siteworxpro\Tests\Unit;
|
||||
|
||||
abstract class AbstractServiceProvider extends Unit
|
||||
{
|
||||
abstract protected function getProviderClass(): string;
|
||||
|
||||
/**
|
||||
* @throws BindingResolutionException
|
||||
*/
|
||||
public function testProvider(): void
|
||||
{
|
||||
$container = new Container();
|
||||
|
||||
$providerClass = $this->getProviderClass();
|
||||
|
||||
/** @var ServiceProvider $providerClass */
|
||||
$provider = new $providerClass($container);
|
||||
|
||||
$this->assertInstanceOf($providerClass, $provider);
|
||||
$provider->register();
|
||||
|
||||
$abstract = $provider->provides()[0];
|
||||
$concrete = get_class($container->make($abstract));
|
||||
|
||||
$this->assertTrue($container->bound($abstract), "The $abstract is not bound in the container.");
|
||||
$this->assertNotNull($container->make($abstract), "The $abstract could not be resolved.");
|
||||
|
||||
$this->assertInstanceOf(
|
||||
$concrete,
|
||||
$container->make($abstract),
|
||||
"The $abstract is not an instance of $concrete."
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user