set( 'simple_service', function () { return new stdClass(); } ); $service = $container->get( 'simple_service' ); $this->assertInstanceOf( stdClass::class, $service ); } public function testGetReturnsSameInstance(): void { $container = new Container(); $container->set( 'singleton_service', function () { return new stdClass(); } ); // Retrieve the service twice $service1 = $container->get( 'singleton_service' ); $service2 = $container->get( 'singleton_service' ); // Check that both instances are the same $this->assertSame( $service1, $service2 ); } public function testExceptionForNonExistingService(): void { // Create the container instance $container = new Container(); // Attempt to get a non-existing service should throw an exception $this->expectException( Exception::class ); $this->expectExceptionMessage( 'Service not found: non_existing_service' ); $container->get( 'non_existing_service' ); } }