diff --git a/tests/Cases/Command/Command.HelperSet.phpt b/tests/Cases/Command/Command.HelperSet.phpt index 5c825c1..1690f93 100644 --- a/tests/Cases/Command/Command.HelperSet.phpt +++ b/tests/Cases/Command/Command.HelperSet.phpt @@ -1,33 +1,28 @@ load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - - Tests\Fixtures\HelperSetCommand - ', 'neon')); - }, [getmypid(), 1]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + - Tests\Fixtures\HelperSetCommand + NEON)); + })->build(); /** @var Application $application */ $application = $container->getByType(Application::class); diff --git a/tests/Cases/DI/ConsoleExtension.EventDispatcher.phpt b/tests/Cases/DI/ConsoleExtension.EventDispatcher.phpt index 7e276a6..c3564e3 100644 --- a/tests/Cases/DI/ConsoleExtension.EventDispatcher.phpt +++ b/tests/Cases/DI/ConsoleExtension.EventDispatcher.phpt @@ -2,35 +2,30 @@ use Contributte\Console\Application; use Contributte\Console\DI\ConsoleExtension; -use Contributte\Tester\Environment; use Contributte\Tester\Toolkit; +use Contributte\Tester\Utils\ContainerBuilder; +use Contributte\Tester\Utils\Neonkit; use Nette\DI\Compiler; -use Nette\DI\Container; -use Nette\DI\ContainerLoader; use Symfony\Component\Console\ConsoleEvents; use Symfony\Component\Console\Event\ConsoleErrorEvent; use Symfony\Component\Console\Input\ArrayInput; use Symfony\Component\Console\Output\NullOutput; use Symfony\Component\EventDispatcher\EventDispatcherInterface; use Tester\Assert; -use Tester\FileMock; use Tests\Fixtures\ThrowingCommand; require_once __DIR__ . '/../../bootstrap.php'; Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - services: - - Tests\Fixtures\ThrowingCommand - - Symfony\Component\EventDispatcher\EventDispatcher - ', 'neon')); - }, [getmypid(), 1]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + services: + - Tests\Fixtures\ThrowingCommand + - Symfony\Component\EventDispatcher\EventDispatcher + NEON)); + })->build(); /** @var Application $application */ $application = $container->getByType(Application::class); diff --git a/tests/Cases/DI/ConsoleExtension.HelperSet.phpt b/tests/Cases/DI/ConsoleExtension.HelperSet.phpt index 4667b52..100eeed 100644 --- a/tests/Cases/DI/ConsoleExtension.HelperSet.phpt +++ b/tests/Cases/DI/ConsoleExtension.HelperSet.phpt @@ -1,28 +1,23 @@ load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - }, [getmypid(), 1]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + })->build(); // 4 default helpers Assert::count(4, $container->getByType(Application::class)->getHelperSet()->getIterator()); @@ -30,17 +25,14 @@ Toolkit::test(function (): void { // Own helperSet Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - helperSet: Tests\Fixtures\FooHelperSet - ', 'neon')); - }, [getmypid(), 2]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + helperSet: Tests\Fixtures\FooHelperSet + NEON)); + })->build(); // Our helper set Assert::type(FooHelperSet::class, $container->getByType(Application::class)->getHelperSet()); @@ -48,20 +40,17 @@ Toolkit::test(function (): void { // Own helperSet as service Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - helperSet: @Tests\Fixtures\FooHelperSet - - services: - - Tests\Fixtures\FooHelperSet - ', 'neon')); - }, [getmypid(), 3]); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + helperSet: @Tests\Fixtures\FooHelperSet - /** @var Container $container */ - $container = new $class(); + services: + - Tests\Fixtures\FooHelperSet + NEON)); + })->build(); // Our helper set Assert::type(FooHelperSet::class, $container->getByType(Application::class)->getHelperSet()); @@ -69,18 +58,15 @@ Toolkit::test(function (): void { // Own helper Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - helpers: - - Tests\Fixtures\FooHelper - ', 'neon')); - }, [getmypid(), 4]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + helpers: + - Tests\Fixtures\FooHelper + NEON)); + })->build(); // 4 default helpers // 1 foo helper @@ -90,13 +76,13 @@ Toolkit::test(function (): void { // Null helperSet Toolkit::test(function (): void { Assert::exception(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - helperSet: null - ', 'neon')); - }, [getmypid(), 5]); - }, InvalidConfigurationException::class, "The item 'console › helperSet' expects to be string|Nette\DI\Definitions\Statement, null given."); + ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + helperSet: null + NEON)); + })->build(); + }, InvalidConfigurationException::class, "~The item 'console.+helperSet' expects to be string\|Nette\\\\DI\\\\Definitions\\\\Statement, null given\.~"); }); diff --git a/tests/Cases/DI/ConsoleExtension.lazy.phpt b/tests/Cases/DI/ConsoleExtension.lazy.phpt index 79c3971..bfbeb71 100644 --- a/tests/Cases/DI/ConsoleExtension.lazy.phpt +++ b/tests/Cases/DI/ConsoleExtension.lazy.phpt @@ -3,33 +3,28 @@ use Contributte\Console\Application; use Contributte\Console\CommandLoader\ContainerCommandLoader; use Contributte\Console\DI\ConsoleExtension; -use Contributte\Tester\Environment; use Contributte\Tester\Toolkit; +use Contributte\Tester\Utils\ContainerBuilder; +use Contributte\Tester\Utils\Neonkit; use Nette\DI\Compiler; -use Nette\DI\Container; -use Nette\DI\ContainerLoader; use Symfony\Component\Console\Command\Command; use Symfony\Component\Console\CommandLoader\CommandLoaderInterface; use Tester\Assert; -use Tester\FileMock; use Tests\Fixtures\FooCommand; require_once __DIR__ . '/../../bootstrap.php'; // 1 command of type FooCommand lazy-loading Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - foo: Tests\Fixtures\FooCommand - ', 'neon')); - }, [getmypid(), 1]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + foo: Tests\Fixtures\FooCommand + NEON)); + })->build(); Assert::type(Application::class, $container->getByType(Application::class)); diff --git a/tests/Cases/DI/ConsoleExtension.phpt b/tests/Cases/DI/ConsoleExtension.phpt index bec166d..ea37251 100644 --- a/tests/Cases/DI/ConsoleExtension.phpt +++ b/tests/Cases/DI/ConsoleExtension.phpt @@ -2,18 +2,16 @@ use Contributte\Console\Application; use Contributte\Console\DI\ConsoleExtension; -use Contributte\Tester\Environment; use Contributte\Tester\Toolkit; +use Contributte\Tester\Utils\ContainerBuilder; +use Contributte\Tester\Utils\Neonkit; use Nette\Bridges\HttpDI\HttpExtension; use Nette\DI\Compiler; -use Nette\DI\Container; -use Nette\DI\ContainerLoader; use Nette\DI\Extensions\DIExtension; use Nette\DI\MissingServiceException; use Nette\DI\ServiceCreationException; use Symfony\Component\Console\Command\Command; use Tester\Assert; -use Tester\FileMock; use Tests\Fixtures\FooAliasCommand; use Tests\Fixtures\FooCommand; use Tests\Fixtures\FooHiddenCommand; @@ -23,31 +21,25 @@ require_once __DIR__ . '/../../bootstrap.php'; // No commands Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - }, [getmypid(), 1]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + })->build(); Assert::count(0, $container->findByType(Command::class)); }); // 1 command of type FooCommand Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - foo: Tests\Fixtures\FooCommand - ', 'neon')); - }, [getmypid(), 2]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + foo: Tests\Fixtures\FooCommand + NEON)); + })->build(); Assert::type(Application::class, $container->getByType(Application::class)); Assert::false($container->isCreated('foo')); @@ -57,31 +49,25 @@ Toolkit::test(function (): void { // Provide URL using default request factory Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->addExtension('http', new HttpExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - url: https://contributte.org/ - ', 'neon')); - }, [getmypid(), 3]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addExtension('http', new HttpExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + url: https://contributte.org/ + NEON)); + })->build(); Assert::equal('https://contributte.org/', (string) $container->getService('http.request')->getUrl()); }); // Non-CLI mode Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(false)); - }, [getmypid(), 4]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(false)); + })->build(); Assert::exception(static function () use ($container): void { $container->getByType(Application::class); @@ -90,20 +76,17 @@ Toolkit::test(function (): void { // Config Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - name: Hello world - version: 1.0.0 - catchExceptions: false - autoExit: false - ', 'neon')); - }, [getmypid(), 5]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + name: Hello world + version: 1.0.0 + catchExceptions: false + autoExit: false + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::type(Application::class, $application); @@ -115,18 +98,15 @@ Toolkit::test(function (): void { // Lazy commands Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - defaultName: Tests\Fixtures\FooCommand - ', 'neon')); - }, [getmypid(), 6]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + defaultName: Tests\Fixtures\FooCommand + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::type(Application::class, $application); @@ -138,33 +118,30 @@ Toolkit::test(function (): void { // Invalid command Toolkit::test(function (): void { Assert::exception(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - noName: Tests\Fixtures\NoNameCommand - ', 'neon')); - }, [getmypid(), 7]); + ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + noName: Tests\Fixtures\NoNameCommand + NEON)); + })->build(); }, ServiceCreationException::class, 'Command "Tests\Fixtures\NoNameCommand" missing #[AsCommand] attribute'); }); // Always exported Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->addExtension('di', new DIExtension()); - $compiler->loadConfig(FileMock::create(' - di: - export: - types: null - ', 'neon')); - }, [getmypid(), 8]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addExtension('di', new DIExtension()); + $compiler->addConfig(Neonkit::load(<<<'NEON' + di: + export: + types: null + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::type(Application::class, $application); @@ -172,21 +149,18 @@ Toolkit::test(function (): void { // URL as Dynamic parameter Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->setDynamicParameterNames(['url']); - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->addExtension('http', new HttpExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - url: %url% - parameters: - url: https://contributte.org/ - ', 'neon')); - }, [getmypid(), 9]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->setDynamicParameterNames(['url']); + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addExtension('http', new HttpExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + url: %url% + parameters: + url: https://contributte.org/ + NEON)); + })->build(); Assert::type(Application::class, $container->getByType(Application::class)); Assert::equal('https://contributte.org/', (string) $container->getService('http.request')->getUrl()); @@ -194,20 +168,17 @@ Toolkit::test(function (): void { // Name as Dynamic parameter Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->setDynamicParameterNames(['name']); - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - name: %name% - parameters: - name: Hello world - ', 'neon')); - }, [getmypid(), 10]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->setDynamicParameterNames(['name']); + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + name: %name% + parameters: + name: Hello world + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::equal('Hello world', $application->getName()); @@ -215,18 +186,15 @@ Toolkit::test(function (): void { // Use custom request Factory Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->addExtension('http', new HttpExtension(true)); - $compiler->loadConfig(FileMock::create(' - services: - http.requestFactory: Tests\Fixtures\FooRequestFactory - ', 'neon')); - }, [getmypid(), 11]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addExtension('http', new HttpExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + services: + http.requestFactory: Tests\Fixtures\FooRequestFactory + NEON)); + })->build(); Assert::equal(FooRequestFactory::CUSTOM_URL, (string) $container->getService('http.request')->getUrl()); }); @@ -234,35 +202,31 @@ Toolkit::test(function (): void { // Throw error on custom factory and console.url set Toolkit::test(function (): void { Assert::exception(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->addExtension('http', new HttpExtension(true)); - $compiler->loadConfig(FileMock::create(' - services: - http.requestFactory: Tests\Fixtures\FooRequestFactory - console: - url: https://contributte.org/ - ', 'neon')); - }, [getmypid(), 12]); - new $class(); + ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addExtension('http', new HttpExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + services: + http.requestFactory: Tests\Fixtures\FooRequestFactory + console: + url: https://contributte.org/ + NEON)); + })->build(); }, ServiceCreationException::class, 'Custom http.requestFactory is used, argument console.url should be removed.'); }); // 1 command with aliases Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - foo: Tests\Fixtures\FooAliasCommand - ', 'neon')); - }, [getmypid(), 13]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + foo: Tests\Fixtures\FooAliasCommand + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::type(Application::class, $application); @@ -274,18 +238,15 @@ Toolkit::test(function (): void { // 1 hidden command Toolkit::test(function (): void { - $loader = new ContainerLoader(Environment::getTestDir(), true); - $class = $loader->load(function (Compiler $compiler): void { - $compiler->addExtension('console', new ConsoleExtension(true)); - $compiler->loadConfig(FileMock::create(' - console: - services: - foo: Tests\Fixtures\FooHiddenCommand - ', 'neon')); - }, [getmypid(), 14]); - - /** @var Container $container */ - $container = new $class(); + $container = ContainerBuilder::of() + ->withCompiler(function (Compiler $compiler): void { + $compiler->addExtension('console', new ConsoleExtension(true)); + $compiler->addConfig(Neonkit::load(<<<'NEON' + console: + services: + foo: Tests\Fixtures\FooHiddenCommand + NEON)); + })->build(); $application = $container->getByType(Application::class); Assert::type(Application::class, $application);