/** * Test shared and non-shared services * * @param string $serviceName * @dataProvider serviceDefinitionsTestProvider */ public function testSharedNonShared($serviceName, $definition, $className) { // services were set in testServiceDefinitions() $serviceName .= 'a'; // test that two instances of a shared service are identical self::$di->getService($serviceName)->setShared(true); $s1a = self::$di->get($serviceName); $s1b = self::$di->get($serviceName); $this->assertTrue($s1a === $s1b); // test that two instances of a non-shared service are different self::$di->getService($serviceName)->setShared(false); $s2a = self::$di->get($serviceName); $s2b = self::$di->get($serviceName); $this->assertTrue($s2a !== $s2b); }