<?php declare( strict_types=1 ); namespace WPDesk\Init\Tests\Binding; use WPDesk\Init\Binding\Definition\UnknownDefinition; use WPDesk\Init\Binding\Loader\FilesystemDefinitions; use WPDesk\Init\Configuration\Configuration; use WPDesk\Init\Tests\TestCase; class DirectoryBasedLoaderTest extends TestCase { public function xtest_throws_when_configuration_entry_is_missing(): void { $this->expectException(\InvalidArgumentException::class); $a = new FilesystemDefinitions(new Configuration([])); $a->load(); } public function test_loading_empty_bindings(): void { $this->initTempPlugin('hook-bindings'); $a = new FilesystemDefinitions('./'); $actual = iterator_to_array($a->load(), false); $this->assertEquals( [ new UnknownDefinition('binding', 'hook1'), new UnknownDefinition('binding1', 'plugins_loaded'), new UnknownDefinition('binding2', 'plugins_loaded'), ], $actual ); } public function test_load_illogical_bindings(): void { $this->initTempPlugin('borked-bindings'); $a = new FilesystemDefinitions('./'); $actual = iterator_to_array($a->load(), false); $this->assertEquals( [ new UnknownDefinition('binding', 'hook1'), new UnknownDefinition('binding1', 'plugins_loaded'), new UnknownDefinition('binding2', 'plugins_loaded'), ], $actual ); } }