Update lib test dirs

This commit is contained in:
Pierre Goiffon
2022-04-29 16:41:38 +02:00
parent 909fb4c75b
commit dd3f77a397
2 changed files with 4 additions and 115 deletions

View File

@@ -1,115 +0,0 @@
<?php
/**
* @see https://github.com/laminas/laminas-servicemanager for the canonical source repository
* @copyright https://github.com/laminas/laminas-servicemanager/blob/master/COPYRIGHT.md
* @license https://github.com/laminas/laminas-servicemanager/blob/master/LICENSE.md New BSD License
*/
namespace Laminas\ServiceManager\Test;
use Laminas\ServiceManager\Exception\InvalidServiceException;
use ReflectionClass;
use ReflectionProperty;
/**
* Trait for testing plugin managers for v2-v3 compatibility
*
* To use this trait:
* * implement the `getPluginManager()` method to return your plugin manager
* * implement the `getV2InvalidPluginException()` method to return the class `validatePlugin()` throws under v2
*/
trait CommonPluginManagerTrait
{
public function testInstanceOfMatches()
{
$manager = $this->getPluginManager();
$reflection = new ReflectionProperty($manager, 'instanceOf');
$reflection->setAccessible(true);
$this->assertEquals($this->getInstanceOf(), $reflection->getValue($manager), 'instanceOf does not match');
}
public function testShareByDefaultAndSharedByDefault()
{
$manager = $this->getPluginManager();
$reflection = new ReflectionClass($manager);
$shareByDefault = $sharedByDefault = true;
foreach ($reflection->getProperties() as $prop) {
if ($prop->getName() == 'shareByDefault') {
$prop->setAccessible(true);
$shareByDefault = $prop->getValue($manager);
}
if ($prop->getName() == 'sharedByDefault') {
$prop->setAccessible(true);
$sharedByDefault = $prop->getValue($manager);
}
}
$this->assertTrue(
$shareByDefault == $sharedByDefault,
'Values of shareByDefault and sharedByDefault do not match'
);
}
public function testRegisteringInvalidElementRaisesException()
{
$this->expectException($this->getServiceNotFoundException());
$this->getPluginManager()->setService('test', $this);
}
public function testLoadingInvalidElementRaisesException()
{
$manager = $this->getPluginManager();
$manager->setInvokableClass('test', get_class($this));
$this->expectException($this->getServiceNotFoundException());
$manager->get('test');
}
/**
* @dataProvider aliasProvider
*/
public function testPluginAliasesResolve($alias, $expected)
{
$this->assertInstanceOf($expected, $this->getPluginManager()->get($alias), "Alias '$alias' does not resolve'");
}
public function aliasProvider()
{
$manager = $this->getPluginManager();
$reflection = new ReflectionProperty($manager, 'aliases');
$reflection->setAccessible(true);
$data = [];
foreach ($reflection->getValue($manager) as $alias => $expected) {
$data[] = [$alias, $expected];
}
return $data;
}
protected function getServiceNotFoundException()
{
$manager = $this->getPluginManager();
if (method_exists($manager, 'configure')) {
return InvalidServiceException::class;
}
return $this->getV2InvalidPluginException();
}
/**
* Returns the plugin manager to test
* @return \Laminas\ServiceManager\AbstractPluginManager
*/
abstract protected function getPluginManager();
/**
* Returns the FQCN of the exception thrown under v2 by `validatePlugin()`
* @return mixed
*/
abstract protected function getV2InvalidPluginException();
/**
* Returns the value the instanceOf property has been set to
* @return string
*/
abstract protected function getInstanceOf();
}

View File

@@ -100,6 +100,8 @@ class iTopComposer
$APPROOT_WITH_SLASHES.'lib/goaop/framework/tests',
$APPROOT_WITH_SLASHES.'lib/laminas/laminas-servicemanager/src/Test',
$APPROOT_WITH_SLASHES.'lib/nikic/php-parser/test',
$APPROOT_WITH_SLASHES.'lib/pear/archive_tar/tests',
@@ -122,10 +124,12 @@ class iTopComposer
$APPROOT_WITH_SLASHES.'lib/symfony/filesystem/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/finder/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/framework-bundle/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/http-client-contracts/Test',
$APPROOT_WITH_SLASHES.'lib/symfony/http-foundation/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/http-kernel/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/framework-bundle/Test',
$APPROOT_WITH_SLASHES.'lib/symfony/framework-bundle/Tests/Fixtures/TestBundle/FooBundle/Controller/Test',
$APPROOT_WITH_SLASHES.'lib/symfony/mime/Test',
$APPROOT_WITH_SLASHES.'lib/symfony/routing/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/stopwatch/Tests',
$APPROOT_WITH_SLASHES.'lib/symfony/twig-bridge/Tests',