Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
ConsequencesExecutorFactory
100.00% covered (success)
100.00%
19 / 19
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 newExecutor
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3namespace MediaWiki\Extension\AbuseFilter\Consequences;
4
5use MediaWiki\Config\ServiceOptions;
6use MediaWiki\Extension\AbuseFilter\ActionSpecifier;
7use MediaWiki\Extension\AbuseFilter\FilterLookup;
8use MediaWiki\Extension\AbuseFilter\Variables\VariableHolder;
9use MediaWiki\User\UserIdentityUtils;
10use Psr\Log\LoggerInterface;
11
12class ConsequencesExecutorFactory {
13    public const SERVICE_NAME = 'AbuseFilterConsequencesExecutorFactory';
14
15    /** @var ConsequencesLookup */
16    private $consLookup;
17    /** @var ConsequencesFactory */
18    private $consFactory;
19    /** @var ConsequencesRegistry */
20    private $consRegistry;
21    /** @var FilterLookup */
22    private $filterLookup;
23    /** @var LoggerInterface */
24    private $logger;
25    /** @var UserIdentityUtils */
26    private $userIdentityUtils;
27    /** @var ServiceOptions */
28    private $options;
29
30    /**
31     * @param ConsequencesLookup $consLookup
32     * @param ConsequencesFactory $consFactory
33     * @param ConsequencesRegistry $consRegistry
34     * @param FilterLookup $filterLookup
35     * @param LoggerInterface $logger
36     * @param UserIdentityUtils $userIdentityUtils
37     * @param ServiceOptions $options
38     */
39    public function __construct(
40        ConsequencesLookup $consLookup,
41        ConsequencesFactory $consFactory,
42        ConsequencesRegistry $consRegistry,
43        FilterLookup $filterLookup,
44        LoggerInterface $logger,
45        UserIdentityUtils $userIdentityUtils,
46        ServiceOptions $options
47    ) {
48        $this->consLookup = $consLookup;
49        $this->consFactory = $consFactory;
50        $this->consRegistry = $consRegistry;
51        $this->filterLookup = $filterLookup;
52        $this->logger = $logger;
53        $this->userIdentityUtils = $userIdentityUtils;
54        $options->assertRequiredOptions( ConsequencesExecutor::CONSTRUCTOR_OPTIONS );
55        $this->options = $options;
56    }
57
58    /**
59     * @param ActionSpecifier $specifier
60     * @param VariableHolder $vars
61     * @return ConsequencesExecutor
62     */
63    public function newExecutor( ActionSpecifier $specifier, VariableHolder $vars ): ConsequencesExecutor {
64        return new ConsequencesExecutor(
65            $this->consLookup,
66            $this->consFactory,
67            $this->consRegistry,
68            $this->filterLookup,
69            $this->logger,
70            $this->userIdentityUtils,
71            $this->options,
72            $specifier,
73            $vars
74        );
75    }
76}