engelsystem/tests/Unit/ServiceProviderTest.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;
}
}