Make InstanceManager strategy naming convention case insensitive.

This commit is contained in:
Philipp 2023-07-29 13:20:02 +02:00
parent 06df62a2b5
commit 6bcf5cb823
No known key found for this signature in database
GPG key ID: 24A7501396EB5432
2 changed files with 23 additions and 4 deletions

View file

@ -235,4 +235,23 @@ class InstanceManagerTest extends MockedTest
self::assertEquals($cBool, $getInstanceA->getCBool());
self::assertEquals($cBool, $getInstanceB->getCBool());
}
/**
* @see https://github.com/friendica/friendica/issues/13318
*/
public function testCaseInsensitiveNames()
{
$instance = new DiceInstanceManager(new Dice(), $this->hookFileManager);
$instance->registerStrategy(IAmADecoratedInterface::class, FakeInstance::class, 'fake');
// CamelCase
self::assertInstanceOf(FakeInstance::class, $instance->create(IAmADecoratedInterface::class, 'Fake'));
// UPPER CASE
self::assertInstanceOf(FakeInstance::class, $instance->create(IAmADecoratedInterface::class, 'FAKE'));
// lower case
self::assertInstanceOf(FakeInstance::class, $instance->create(IAmADecoratedInterface::class, 'fake'));
// UnKnOwN
self::assertInstanceOf(FakeInstance::class, $instance->create(IAmADecoratedInterface::class, 'fAkE'));
}
}