AbstractHandlerTest   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 16
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 12
dl 0
loc 16
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A getSmallEventListenerStack() 0 14 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Lochmueller\LanguageDetection\Tests\Unit\Handler;
6
7
use Lochmueller\LanguageDetection\Check\BotAgentCheck;
8
use Lochmueller\LanguageDetection\Detect\BrowserLanguageDetect;
9
use Lochmueller\LanguageDetection\Event\BuildResponseEvent;
10
use Lochmueller\LanguageDetection\Event\CheckLanguageDetectionEvent;
11
use Lochmueller\LanguageDetection\Event\DetectUserLanguagesEvent;
12
use Lochmueller\LanguageDetection\Event\NegotiateSiteLanguageEvent;
13
use Lochmueller\LanguageDetection\Negotiation\DefaultNegotiation;
14
use Lochmueller\LanguageDetection\Response\DefaultResponse;
15
use Lochmueller\LanguageDetection\Service\Normalizer;
16
use Lochmueller\LanguageDetection\Service\SiteConfigurationService;
17
use Lochmueller\LanguageDetection\Tests\Unit\AbstractUnitTest;
18
use Symfony\Component\DependencyInjection\Container;
19
use TYPO3\CMS\Core\EventDispatcher\EventDispatcher;
20
use TYPO3\CMS\Core\EventDispatcher\ListenerProvider;
21
22
/**
23
 * @internal
24
 *
25
 * @coversNothing
26
 */
27
abstract class AbstractHandlerTest extends AbstractUnitTest
28
{
29
    protected function getSmallEventListenerStack(): EventDispatcher
30
    {
31
        $container = new Container();
32
        $container->set(BotAgentCheck::class, new BotAgentCheck());
33
        $container->set(BrowserLanguageDetect::class, new BrowserLanguageDetect());
34
        $container->set(DefaultNegotiation::class, new DefaultNegotiation(new Normalizer()));
35
        $container->set(DefaultResponse::class, new DefaultResponse(new SiteConfigurationService()));
36
        $provider = new ListenerProvider($container);
37
        $provider->addListener(CheckLanguageDetectionEvent::class, BotAgentCheck::class);
38
        $provider->addListener(DetectUserLanguagesEvent::class, BrowserLanguageDetect::class);
39
        $provider->addListener(NegotiateSiteLanguageEvent::class, DefaultNegotiation::class);
40
        $provider->addListener(BuildResponseEvent::class, DefaultResponse::class);
41
42
        return new EventDispatcher($provider);
43
    }
44
}
45