34 lines
949 B
PHP
34 lines
949 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Engelsystem\Test\Unit;
|
|
|
|
use Engelsystem\Application;
|
|
use Engelsystem\Config\Config;
|
|
use PHPUnit\Framework\MockObject\MockObject;
|
|
|
|
abstract class ServiceProviderTest extends TestCase
|
|
{
|
|
protected function getApp(array $methods = ['make', 'instance']): Application|MockObject
|
|
{
|
|
return $this->getMockBuilder(Application::class)
|
|
->onlyMethods($methods)
|
|
->getMock();
|
|
}
|
|
|
|
/**
|
|
* Creates an Application instance with a Config set as 'config'.
|
|
* Also sets up the instance as global Application instance.
|
|
*
|
|
* @param string[] $methods Names of the methods to mock
|
|
*/
|
|
protected function createAndSetUpAppWithConfig(array $methods = ['make', 'instance']): Application|MockObject
|
|
{
|
|
$app = $this->getApp($methods);
|
|
$app->instance('config', new Config([]));
|
|
Application::setInstance($app);
|
|
return $app;
|
|
}
|
|
}
|