Spaces:
No application file
No application file
File size: 2,357 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
<?php
namespace Mautic\SmsBundle\Tests\DependencyInjection\Compiler;
use Mautic\PluginBundle\Helper\IntegrationHelper;
use Mautic\SmsBundle\DependencyInjection\Compiler\SmsTransportPass;
use Mautic\SmsBundle\Sms\TransportChain;
use PHPUnit\Framework\TestCase;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class SmsTransportPassTest extends TestCase
{
public function testProcess(): void
{
$container = new ContainerBuilder();
$container->addCompilerPass(new SmsTransportPass());
$container
->register('foo')
->setPublic(true)
->setAbstract(true)
->addTag('mautic.sms_transport', ['alias'=>'fakeAliasDefault', 'integrationAlias' => 'fakeIntegrationDefault']);
$container
->register('chocolate')
->setPublic(true)
->setAbstract(true);
$container
->register('bar')
->setPublic(true)
->setAbstract(true)
->addTag('mautic.sms_transport');
$transport = $this->getMockBuilder(TransportChain::class)
->disableOriginalConstructor()
->onlyMethods(['addTransport'])
->getMock();
$container
->register('mautic.sms.transport_chain')
->setClass($transport::class)
->setArguments(['foo', $this->createMock(IntegrationHelper::class)])
->setShared(false)
->setSynthetic(true)
->setAbstract(true);
$pass = new SmsTransportPass();
$pass->process($container);
$this->assertEquals(2, count($container->findTaggedServiceIds('mautic.sms_transport')));
$methodCalls = $container->getDefinition('mautic.sms.transport_chain')->getMethodCalls();
$this->assertCount(count($methodCalls), $container->findTaggedServiceIds('mautic.sms_transport'));
// Translation string
$this->assertEquals('fakeAliasDefault', $methodCalls[0][1][2]);
// Integration name/alias
$this->assertEquals('fakeIntegrationDefault', $methodCalls[0][1][3]);
// Translation string is set as service ID by default
$this->assertEquals('bar', $methodCalls[1][1][2]);
// Integration name/alias is set to service ID by default
$this->assertEquals('bar', $methodCalls[1][1][3]);
}
}
|