39 $pimple[
'param'] =
'value';
41 $this->assertEquals(
'value', $pimple[
'param']);
47 $pimple[
'service'] =
function () {
51 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $pimple[
'service']);
57 $pimple[
'service'] = $pimple->factory(
function () {
61 $serviceOne = $pimple[
'service'];
62 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceOne);
64 $serviceTwo = $pimple[
'service'];
65 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceTwo);
67 $this->assertNotSame($serviceOne, $serviceTwo);
73 $pimple[
'service'] =
function () {
80 $this->assertNotSame($pimple, $pimple[
'service']);
81 $this->assertSame($pimple, $pimple[
'container']);
87 $pimple[
'param'] =
'value';
88 $pimple[
'service'] =
function () {
92 $pimple[
'null'] = null;
94 $this->assertTrue(isset($pimple[
'param']));
95 $this->assertTrue(isset($pimple[
'service']));
96 $this->assertTrue(isset($pimple[
'null']));
97 $this->assertFalse(isset($pimple[
'non_existent']));
102 $params = array(
'param' =>
'value');
105 $this->assertSame(
$params[
'param'], $pimple[
'param']);
121 $pimple[
'foo'] = null;
122 $this->assertNull($pimple[
'foo']);
128 $pimple[
'param'] =
'value';
129 $pimple[
'service'] =
function () {
133 unset($pimple[
'param'], $pimple[
'service']);
134 $this->assertFalse(isset($pimple[
'param']));
135 $this->assertFalse(isset($pimple[
'service']));
144 $pimple[
'shared_service'] = $service;
146 $serviceOne = $pimple[
'shared_service'];
147 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceOne);
149 $serviceTwo = $pimple[
'shared_service'];
150 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceTwo);
152 $this->assertSame($serviceOne, $serviceTwo);
161 $pimple[
'protected'] = $pimple->protect($service);
163 $this->assertSame($service, $pimple[
'protected']);
169 $pimple[
'global_function'] =
'strlen';
170 $this->assertSame(
'strlen', $pimple[
'global_function']);
176 $pimple[
'service'] = $definition = $pimple->factory(
function () {
return 'foo'; });
177 $this->assertSame($definition, $pimple->raw(
'service'));
183 $pimple[
'foo'] = null;
184 $this->assertNull($pimple->raw(
'foo'));
190 $this->assertSame($pimple, $pimple->register($this->getMock(
'Pimple\ServiceProviderInterface')));
209 $pimple[
'shared_service'] =
function () {
212 $pimple[
'factory_service'] = $pimple->factory(
function () {
216 $pimple->extend(
'shared_service', $service);
217 $serviceOne = $pimple[
'shared_service'];
218 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceOne);
219 $serviceTwo = $pimple[
'shared_service'];
220 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceTwo);
221 $this->assertSame($serviceOne, $serviceTwo);
222 $this->assertSame($serviceOne->value, $serviceTwo->value);
224 $pimple->extend(
'factory_service', $service);
225 $serviceOne = $pimple[
'factory_service'];
226 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceOne);
227 $serviceTwo = $pimple[
'factory_service'];
228 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $serviceTwo);
229 $this->assertNotSame($serviceOne, $serviceTwo);
230 $this->assertNotSame($serviceOne->value, $serviceTwo->value);
235 if (extension_loaded(
'pimple')) {
236 $this->markTestSkipped(
'Pimple extension does not support this test');
240 $pimple[
'foo'] = $pimple->factory(
function () {
return; });
241 $pimple[
'foo'] = $pimple->extend(
'foo',
function ($foo, $pimple) {
return; });
242 unset($pimple[
'foo']);
244 $p = new \ReflectionProperty($pimple,
'values');
245 $p->setAccessible(
true);
246 $this->assertEmpty($p->getValue($pimple));
248 $p = new \ReflectionProperty($pimple,
'factories');
249 $p->setAccessible(
true);
250 $this->assertCount(0, $p->getValue($pimple));
260 $pimple->extend(
'foo',
function () {});
266 $pimple[
'foo'] = 123;
267 $pimple[
'bar'] = 123;
269 $this->assertEquals(array(
'foo',
'bar'), $pimple->keys());
278 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\Service', $pimple[
'invokable']);
287 $this->assertInstanceOf(
'Pimple\Tests\Fixtures\NonInvokable', $pimple[
'non_invokable']);
298 $pimple->factory($service);
309 $pimple->protect($service);
320 $pimple[
'foo'] = $service;
321 $pimple->extend(
'foo',
function () {});
332 $pimple[
'foo'] =
function () {};
333 $pimple->extend(
'foo', $service);
343 array(
new Fixtures\NonInvokable()),
353 array(
function ($value) {
355 $service->value = $value;
359 array(
new Fixtures\Invokable()),
366 $pimple[
'foo'] =
function () {
369 $foo = $pimple[
'foo'];
371 $pimple[
'bar'] =
function () {
374 $this->assertSame(
'bar', $pimple[
'bar']);
384 $pimple[
'foo'] =
function () {
387 $foo = $pimple[
'foo'];
389 $pimple[
'foo'] =
function () {
397 $pimple[
'foo'] =
function () {
400 $foo = $pimple[
'foo'];
402 unset($pimple[
'foo']);
403 $pimple[
'foo'] =
function () {
406 $this->assertSame(
'bar', $pimple[
'foo']);
412 $pimple[
'foo'] =
function () {
415 $pimple[
'foo'] = $pimple->extend(
'foo',
function ($foo, $app) {
418 $pimple[
'foo'] = $pimple->extend(
'foo',
function ($foo, $app) {
421 $this->assertSame(
'foo.bar.baz', $pimple[
'foo']);
427 $pimple[
'foo'] =
function () {
430 $pimple[
'bar'] =
function () {
433 $foo = $pimple[
'foo'];
435 $pimple[
'bar'] = $pimple->extend(
'bar',
function ($bar, $app) {
438 $this->assertSame(
'bar.baz', $pimple[
'bar']);
testExtend($service)
serviceDefinitionProvider
testShare($service)
serviceDefinitionProvider
testProtectFailsForInvalidServiceDefinitions($service)
badServiceDefinitionProvider Callable is not a Closure or invokable object.
testConstructorInjection()
serviceDefinitionProvider()
Provider for service definitions.
testExtendFailsForKeysNotContainingServiceDefinitions($service)
badServiceDefinitionProvider Identifier "foo" does not contain an object definition.
testRemovingServiceAfterFreeze()
testExtendingServiceAfterOtherServiceFreeze()
settingAnInvokableObjectShouldTreatItAsFactory()
testFactoryFailsForInvalidServiceDefinitions($service)
badServiceDefinitionProvider Service definition is not a Closure or invokable object.
testServicesShouldBeDifferent()
testShouldPassContainerAsParameter()
testOffsetGetHonorsNullValues()
testOverridingServiceAfterFreeze()
Cannot override frozen service "foo".
testDefiningNewServiceAfterFreeze()
settingNonInvokableObjectShouldTreatItAsParameter()
testExtendValidatesKeyIsPresent()
Identifier "foo" is not defined.
testRawHonorsNullValues()
testExtendDoesNotLeakWithFactories()
testOffsetGetValidatesKeyIsPresent()
Identifier "foo" is not defined.
testRawValidatesKeyIsPresent()
Identifier "foo" is not defined.
badServiceDefinitionProvider()
Provider for invalid service definitions.
testProtect($service)
serviceDefinitionProvider
testGlobalFunctionNameAsParameterValue()
testExtendFailsForInvalidServiceDefinitions($service)
badServiceDefinitionProvider Extension service definition is not a Closure or invokable object...