Skip to content

Commit ff24bac

Browse files
Merge branch '3.4' into 4.0
* 3.4: [Serializer] optims and cleanup do not mock the container builder in tests [PhpUnitBridge] Added support for PHPUnit 7 in Coverage Listener fix accessing request values Avoid running the remove command without any packages [Form] Add translations for Tagalog
2 parents 20244c2 + 93a3078 commit ff24bac

File tree

3 files changed

+56
-102
lines changed

3 files changed

+56
-102
lines changed

Tests/DependencyInjection/Compiler/CachePoolPrunerPassTest.php

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,27 +44,17 @@ public function testCompilerPassReplacesCommandArgument()
4444

4545
public function testCompilePassIsIgnoredIfCommandDoesNotExist()
4646
{
47-
$container = $this
48-
->getMockBuilder(ContainerBuilder::class)
49-
->setMethods(array('hasDefinition', 'getDefinition', 'findTaggedServiceIds'))
50-
->getMock();
51-
52-
$container
53-
->expects($this->atLeastOnce())
54-
->method('hasDefinition')
55-
->with(CachePoolPruneCommand::class)
56-
->will($this->returnValue(false));
57-
58-
$container
59-
->expects($this->never())
60-
->method('getDefinition');
47+
$container = new ContainerBuilder();
6148

62-
$container
63-
->expects($this->never())
64-
->method('findTaggedServiceIds');
49+
$definitionsBefore = count($container->getDefinitions());
50+
$aliasesBefore = count($container->getAliases());
6551

6652
$pass = new CachePoolPrunerPass();
6753
$pass->process($container);
54+
55+
// the container is untouched (i.e. no new definitions or aliases)
56+
$this->assertCount($definitionsBefore, $container->getDefinitions());
57+
$this->assertCount($aliasesBefore, $container->getAliases());
6858
}
6959

7060
/**

Tests/DependencyInjection/Compiler/LoggingTranslatorPassTest.php

Lines changed: 41 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -13,96 +13,69 @@
1313

1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\LoggingTranslatorPass;
16+
use Symfony\Component\DependencyInjection\ContainerBuilder;
17+
use Symfony\Component\DependencyInjection\Reference;
1618

1719
class LoggingTranslatorPassTest extends TestCase
1820
{
1921
public function testProcess()
2022
{
21-
$definition = $this->getMockBuilder('Symfony\Component\DependencyInjection\Definition')->getMock();
22-
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')->getMock();
23-
$parameterBag = $this->getMockBuilder('Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface')->getMock();
24-
25-
$container->expects($this->exactly(2))
26-
->method('hasAlias')
27-
->will($this->returnValue(true));
28-
29-
$container->expects($this->once())
30-
->method('getParameter')
31-
->will($this->returnValue(true));
32-
33-
$container->expects($this->once())
34-
->method('getAlias')
35-
->will($this->returnValue('translation.default'));
36-
37-
$container->expects($this->exactly(3))
38-
->method('getDefinition')
39-
->will($this->returnValue($definition));
40-
41-
$container->expects($this->once())
42-
->method('hasParameter')
43-
->with('translator.logging')
44-
->will($this->returnValue(true));
45-
46-
$definition->expects($this->once())
47-
->method('getClass')
48-
->will($this->returnValue('Symfony\Bundle\FrameworkBundle\Translation\Translator'));
49-
50-
$parameterBag->expects($this->once())
51-
->method('resolveValue')
52-
->will($this->returnValue("Symfony\Bundle\FrameworkBundle\Translation\Translator"));
53-
54-
$container->expects($this->once())
55-
->method('getParameterBag')
56-
->will($this->returnValue($parameterBag));
57-
58-
$container->expects($this->once())
59-
->method('getReflectionClass')
60-
->with('Symfony\Bundle\FrameworkBundle\Translation\Translator')
61-
->will($this->returnValue(new \ReflectionClass('Symfony\Bundle\FrameworkBundle\Translation\Translator')));
62-
63-
$definition->expects($this->once())
64-
->method('getTag')
65-
->with('container.service_subscriber')
66-
->willReturn(array(array('id' => 'translator'), array('id' => 'foo')));
67-
68-
$definition->expects($this->once())
69-
->method('clearTag')
70-
->with('container.service_subscriber');
71-
72-
$definition->expects($this->any())
73-
->method('addTag')
74-
->withConsecutive(
75-
array('container.service_subscriber', array('id' => 'foo')),
76-
array('container.service_subscriber', array('key' => 'translator', 'id' => 'translator.logging.inner'))
77-
);
23+
$container = new ContainerBuilder();
24+
$container->setParameter('translator.logging', true);
25+
$container->setParameter('translator.class', 'Symfony\Component\Translation\Translator');
26+
$container->register('monolog.logger');
27+
$container->setAlias('logger', 'monolog.logger');
28+
$container->register('translator.default', '%translator.class%');
29+
$container->register('translator.logging', '%translator.class%');
30+
$container->setAlias('translator', 'translator.default');
31+
$translationWarmerDefinition = $container->register('translation.warmer')
32+
->addArgument(new Reference('translator'))
33+
->addTag('container.service_subscriber', array('id' => 'translator'))
34+
->addTag('container.service_subscriber', array('id' => 'foo'));
7835

7936
$pass = new LoggingTranslatorPass();
8037
$pass->process($container);
38+
39+
$this->assertEquals(
40+
array('container.service_subscriber' => array(
41+
array('id' => 'foo'),
42+
array('key' => 'translator', 'id' => 'translator.logging.inner'),
43+
)),
44+
$translationWarmerDefinition->getTags()
45+
);
8146
}
8247

8348
public function testThatCompilerPassIsIgnoredIfThereIsNotLoggerDefinition()
8449
{
85-
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')->getMock();
86-
$container->expects($this->once())
87-
->method('hasAlias')
88-
->will($this->returnValue(false));
50+
$container = new ContainerBuilder();
51+
$container->register('identity_translator');
52+
$container->setAlias('translator', 'identity_translator');
53+
54+
$definitionsBefore = count($container->getDefinitions());
55+
$aliasesBefore = count($container->getAliases());
8956

9057
$pass = new LoggingTranslatorPass();
9158
$pass->process($container);
59+
60+
// the container is untouched (i.e. no new definitions or aliases)
61+
$this->assertCount($definitionsBefore, $container->getDefinitions());
62+
$this->assertCount($aliasesBefore, $container->getAliases());
9263
}
9364

9465
public function testThatCompilerPassIsIgnoredIfThereIsNotTranslatorDefinition()
9566
{
96-
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')->getMock();
97-
$container->expects($this->at(0))
98-
->method('hasAlias')
99-
->will($this->returnValue(true));
67+
$container = new ContainerBuilder();
68+
$container->register('monolog.logger');
69+
$container->setAlias('logger', 'monolog.logger');
10070

101-
$container->expects($this->at(0))
102-
->method('hasAlias')
103-
->will($this->returnValue(false));
71+
$definitionsBefore = count($container->getDefinitions());
72+
$aliasesBefore = count($container->getAliases());
10473

10574
$pass = new LoggingTranslatorPass();
10675
$pass->process($container);
76+
77+
// the container is untouched (i.e. no new definitions or aliases)
78+
$this->assertCount($definitionsBefore, $container->getDefinitions());
79+
$this->assertCount($aliasesBefore, $container->getAliases());
10780
}
10881
}

Tests/DependencyInjection/Compiler/UnusedTagsPassTest.php

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,31 +13,22 @@
1313

1414
use PHPUnit\Framework\TestCase;
1515
use Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\UnusedTagsPass;
16+
use Symfony\Component\DependencyInjection\ContainerBuilder;
1617

1718
class UnusedTagsPassTest extends TestCase
1819
{
1920
public function testProcess()
2021
{
2122
$pass = new UnusedTagsPass();
2223

23-
$container = $this->getMockBuilder('Symfony\Component\DependencyInjection\ContainerBuilder')->setMethods(array('findTaggedServiceIds', 'findUnusedTags', 'findTags', 'log'))->getMock();
24-
$container->expects($this->once())
25-
->method('log')
26-
->with($pass, 'Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?');
27-
$container->expects($this->once())
28-
->method('findTags')
29-
->will($this->returnValue(array('kenrel.event_subscriber')));
30-
$container->expects($this->once())
31-
->method('findUnusedTags')
32-
->will($this->returnValue(array('kenrel.event_subscriber', 'form.type')));
33-
$container->expects($this->once())
34-
->method('findTaggedServiceIds')
35-
->with('kenrel.event_subscriber')
36-
->will($this->returnValue(array(
37-
'foo' => array(),
38-
'bar' => array(),
39-
)));
24+
$container = new ContainerBuilder();
25+
$container->register('foo')
26+
->addTag('kenrel.event_subscriber');
27+
$container->register('bar')
28+
->addTag('kenrel.event_subscriber');
4029

4130
$pass->process($container);
31+
32+
$this->assertSame(array(sprintf('%s: Tag "kenrel.event_subscriber" was defined on service(s) "foo", "bar", but was never used. Did you mean "kernel.event_subscriber"?', UnusedTagsPass::class)), $container->getCompiler()->getLog());
4233
}
4334
}

0 commit comments

Comments
 (0)