1+ <?php
2+
3+ namespace Tempest \tests ;
4+
5+ use DI \Container ;
6+ use PHPUnit \Framework \TestCase ;
7+ use Tempest \Container \GenericContainer ;
8+ use Tempest \Discovery \BootDiscovery ;
9+ use Tempest \Discovery \DiscoveryLocation ;
10+ use Tempest \Discovery \Registry ;
11+ use Tempest \Discovery \Tests \Fixtures \MyDiscoveryClass ;
12+
13+ final class DiscoveryTest extends TestCase
14+ {
15+ protected function setUp (): void
16+ {
17+ parent ::setUp ();
18+
19+ MyDiscoveryClass::$ discoveredItem = null ;
20+ }
21+
22+ public function test_standalone_discovery (): void
23+ {
24+ $ container = new GenericContainer ();
25+
26+ new BootDiscovery (
27+ container: $ container ,
28+ registry: new Registry (locations: [
29+ new DiscoveryLocation (
30+ namespace: 'Tempest\Discovery\Tests\Fixtures ' ,
31+ path: __DIR__ . '/Fixtures ' ,
32+ ),
33+ ]),
34+ )();
35+
36+ self ::assertNotNull (MyDiscoveryClass::$ discoveredItem );
37+ $ this ->assertSame ('check ' , MyDiscoveryClass::$ discoveredItem ->name );
38+ }
39+
40+ public function test_discovery_with_other_container (): void
41+ {
42+ $ container = new Container ();
43+
44+ new BootDiscovery (
45+ container: $ container ,
46+ registry: new Registry (locations: [
47+ new DiscoveryLocation (
48+ namespace: 'Tempest\Discovery\Tests\Fixtures ' ,
49+ path: __DIR__ . '/Fixtures ' ,
50+ ),
51+ ]),
52+ )();
53+
54+ self ::assertNotNull (MyDiscoveryClass::$ discoveredItem );
55+ $ this ->assertSame ('check ' , MyDiscoveryClass::$ discoveredItem ->name );
56+ }
57+ }
0 commit comments