This repository has moved to laminas/laminas-container-config-test.
This library provides common tests for PSR-11 containers configured using a subset of zend-servicemanager configuration as specified by Expressive
It guarantees delivery of the same basic functionality across multiple PSR-11 container implementations, and simplifies switching between them.
Currently we support:
Run the following to install this library:
$ composer require --dev zendframework/zend-container-config-testIn your library, you will need to extend the Zend\ContainerConfigTest\AbstractContainerTest class within your test suite and implement the method createContainer:
protected function createContainer(array $config) : ContainerInterface;It should return your PSR-11-compatible container, configured using $config.
Then, depending on what functionality you'd like to support, you can add the following traits into your test case:
Zend\ContainerConfigTest\AliasTestTrait- to supportaliasesconfiguration,Zend\ContainerConfigTest\DelegatorTestTrait- to supportdelegatorsconfiguration,Zend\ContainerConfigTest\FactoryTestTrait- to supportfactoriesconfiguration,Zend\ContainerConfigTest\InvokableTestTrait- to supportinvokablesconfiguration,Zend\ContainerConfigTest\ServiceTestTrait- to supportservicesconfiguration,Zend\ContainerConfigTest\SharedTestTrait- to supportsharedandshared_by_defaultconfiguration.
To provide an Expressive-compatible container, you should extend the class Zend\ContainerConfigTest\AbstractExpressiveContainerConfigTest and implement the method createContainer. This class composes the following traits:
Zend\ContainerConfigTest\AliasTestTrait,Zend\ContainerConfigTest\DelegatorTestTrait,Zend\ContainerConfigTest\FactoryTestTrait,Zend\ContainerConfigTest\InvokableTestTrait,Zend\ContainerConfigTest\ServiceTestTrait.
If you want also plan to support shared services, your test class should compose the SharedTestTrait as well:
use Zend\ContainerConfigTest\AbstractExpressiveContainerConfigTest; use Zend\ContainerConfigTest\SharedTestTrait; class ContainerTest extends AbstractExpressiveContainerConfigTest { use SharedTestTrait; protected function createContainer(array $config) : ContainerInterface { // your container configuration } }