Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | |
0.00% |
0 / 283 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
1 | <?php |
2 | |
3 | declare( strict_types=1 ); |
4 | |
5 | use MediaWiki\Config\ServiceOptions; |
6 | use MediaWiki\Extension\CampaignEvents\Address\AddressStore; |
7 | use MediaWiki\Extension\CampaignEvents\Database\CampaignsDatabaseHelper; |
8 | use MediaWiki\Extension\CampaignEvents\Event\DeleteEventCommand; |
9 | use MediaWiki\Extension\CampaignEvents\Event\EditEventCommand; |
10 | use MediaWiki\Extension\CampaignEvents\Event\EventFactory; |
11 | use MediaWiki\Extension\CampaignEvents\Event\PageEventLookup; |
12 | use MediaWiki\Extension\CampaignEvents\Event\Store\EventStore; |
13 | use MediaWiki\Extension\CampaignEvents\Event\Store\IEventLookup; |
14 | use MediaWiki\Extension\CampaignEvents\Event\Store\IEventStore; |
15 | use MediaWiki\Extension\CampaignEvents\EventPage\EventPageCacheUpdater; |
16 | use MediaWiki\Extension\CampaignEvents\EventPage\EventPageDecoratorFactory; |
17 | use MediaWiki\Extension\CampaignEvents\FrontendModules\FrontendModulesFactory; |
18 | use MediaWiki\Extension\CampaignEvents\Hooks\CampaignEventsHookRunner; |
19 | use MediaWiki\Extension\CampaignEvents\Messaging\CampaignsUserMailer; |
20 | use MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsCentralUserLookup; |
21 | use MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsPageFactory; |
22 | use MediaWiki\Extension\CampaignEvents\MWEntity\CampaignsPageFormatter; |
23 | use MediaWiki\Extension\CampaignEvents\MWEntity\MWPermissionsLookup; |
24 | use MediaWiki\Extension\CampaignEvents\MWEntity\PageAuthorLookup; |
25 | use MediaWiki\Extension\CampaignEvents\MWEntity\PageURLResolver; |
26 | use MediaWiki\Extension\CampaignEvents\MWEntity\UserLinker; |
27 | use MediaWiki\Extension\CampaignEvents\Notifications\UserNotifier; |
28 | use MediaWiki\Extension\CampaignEvents\Organizers\OrganizersStore; |
29 | use MediaWiki\Extension\CampaignEvents\Organizers\RoleFormatter; |
30 | use MediaWiki\Extension\CampaignEvents\Pager\EventsPagerFactory; |
31 | use MediaWiki\Extension\CampaignEvents\Participants\ParticipantsStore; |
32 | use MediaWiki\Extension\CampaignEvents\Participants\RegisterParticipantCommand; |
33 | use MediaWiki\Extension\CampaignEvents\Participants\UnregisterParticipantCommand; |
34 | use MediaWiki\Extension\CampaignEvents\Permissions\PermissionChecker; |
35 | use MediaWiki\Extension\CampaignEvents\PolicyMessagesLookup; |
36 | use MediaWiki\Extension\CampaignEvents\Questions\EventAggregatedAnswersStore; |
37 | use MediaWiki\Extension\CampaignEvents\Questions\EventQuestionsRegistry; |
38 | use MediaWiki\Extension\CampaignEvents\Questions\EventQuestionsStore; |
39 | use MediaWiki\Extension\CampaignEvents\Questions\ParticipantAnswersStore; |
40 | use MediaWiki\Extension\CampaignEvents\Time\EventTimeFormatter; |
41 | use MediaWiki\Extension\CampaignEvents\TrackingTool\TrackingToolEventWatcher; |
42 | use MediaWiki\Extension\CampaignEvents\TrackingTool\TrackingToolRegistry; |
43 | use MediaWiki\Extension\CampaignEvents\TrackingTool\TrackingToolUpdater; |
44 | use MediaWiki\Logger\LoggerFactory; |
45 | use MediaWiki\MediaWikiServices; |
46 | |
47 | // This file is actually covered by CampaignEventsServicesTest, but it's not possible to specify a path |
48 | // in @covers annotations (https://github.com/sebastianbergmann/phpunit/issues/3794) |
49 | // @codeCoverageIgnoreStart |
50 | return [ |
51 | CampaignsDatabaseHelper::SERVICE_NAME => static function ( MediaWikiServices $services ): CampaignsDatabaseHelper { |
52 | return new CampaignsDatabaseHelper( |
53 | $services->getDBLoadBalancerFactory() |
54 | ); |
55 | }, |
56 | CampaignsPageFactory::SERVICE_NAME => static function ( MediaWikiServices $services ): CampaignsPageFactory { |
57 | return new CampaignsPageFactory( |
58 | $services->getPageStoreFactory(), |
59 | $services->getTitleParser(), |
60 | $services->getTitleFormatter() |
61 | ); |
62 | }, |
63 | CampaignsCentralUserLookup::SERVICE_NAME => |
64 | static function ( MediaWikiServices $services ): CampaignsCentralUserLookup { |
65 | return new CampaignsCentralUserLookup( |
66 | $services->getCentralIdLookup(), |
67 | $services->getUserFactory(), |
68 | $services->getUserNameUtils() |
69 | ); |
70 | }, |
71 | IEventStore::STORE_SERVICE_NAME => static function ( MediaWikiServices $services ): IEventStore { |
72 | return new EventStore( |
73 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ), |
74 | $services->get( CampaignsPageFactory::SERVICE_NAME ), |
75 | $services->get( AddressStore::SERVICE_NAME ), |
76 | $services->get( TrackingToolUpdater::SERVICE_NAME ), |
77 | $services->get( EventQuestionsStore::SERVICE_NAME ) |
78 | ); |
79 | }, |
80 | IEventLookup::LOOKUP_SERVICE_NAME => static function ( MediaWikiServices $services ): IEventLookup { |
81 | return $services->get( IEventStore::STORE_SERVICE_NAME ); |
82 | }, |
83 | PermissionChecker::SERVICE_NAME => static function ( MediaWikiServices $services ): PermissionChecker { |
84 | return new PermissionChecker( |
85 | $services->get( OrganizersStore::SERVICE_NAME ), |
86 | $services->get( PageAuthorLookup::SERVICE_NAME ), |
87 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
88 | $services->get( MWPermissionsLookup::SERVICE_NAME ) |
89 | ); |
90 | }, |
91 | CampaignsUserMailer::SERVICE_NAME => static function ( MediaWikiServices $services ): CampaignsUserMailer { |
92 | return new CampaignsUserMailer( |
93 | $services->getUserFactory(), |
94 | $services->getJobQueueGroup(), |
95 | new ServiceOptions( |
96 | CampaignsUserMailer::CONSTRUCTOR_OPTIONS, |
97 | $services->getMainConfig() |
98 | ), |
99 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
100 | $services->getUserOptionsLookup(), |
101 | $services->getMessageFormatterFactory()->getTextFormatter( $services->getContentLanguage()->getCode() ), |
102 | $services->get( PageURLResolver::SERVICE_NAME ), |
103 | $services->getEmailUserFactory(), |
104 | ); |
105 | }, |
106 | EventFactory::SERVICE_NAME => static function ( MediaWikiServices $services ): EventFactory { |
107 | return new EventFactory( |
108 | $services->get( CampaignsPageFactory::SERVICE_NAME ), |
109 | $services->get( CampaignsPageFormatter::SERVICE_NAME ), |
110 | $services->get( TrackingToolRegistry::SERVICE_NAME ), |
111 | $services->get( EventQuestionsRegistry::SERVICE_NAME ) |
112 | ); |
113 | }, |
114 | CampaignsPageFormatter::SERVICE_NAME => static function ( MediaWikiServices $services ): CampaignsPageFormatter { |
115 | return new CampaignsPageFormatter( |
116 | $services->getTitleFormatter() |
117 | ); |
118 | }, |
119 | ParticipantsStore::SERVICE_NAME => static function ( MediaWikiServices $services ): ParticipantsStore { |
120 | return new ParticipantsStore( |
121 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ), |
122 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
123 | $services->get( ParticipantAnswersStore::SERVICE_NAME ) |
124 | ); |
125 | }, |
126 | OrganizersStore::SERVICE_NAME => static function ( MediaWikiServices $services ): OrganizersStore { |
127 | return new OrganizersStore( |
128 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
129 | ); |
130 | }, |
131 | EditEventCommand::SERVICE_NAME => static function ( MediaWikiServices $services ): EditEventCommand { |
132 | return new EditEventCommand( |
133 | $services->get( IEventStore::STORE_SERVICE_NAME ), |
134 | $services->get( IEventLookup::LOOKUP_SERVICE_NAME ), |
135 | $services->get( OrganizersStore::SERVICE_NAME ), |
136 | $services->get( PermissionChecker::SERVICE_NAME ), |
137 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
138 | $services->get( EventPageCacheUpdater::SERVICE_NAME ), |
139 | $services->get( TrackingToolEventWatcher::SERVICE_NAME ), |
140 | $services->get( TrackingToolUpdater::SERVICE_NAME ), |
141 | LoggerFactory::getInstance( 'CampaignEvents' ), |
142 | $services->get( ParticipantAnswersStore::SERVICE_NAME ), |
143 | $services->get( EventAggregatedAnswersStore::SERVICE_NAME ), |
144 | $services->get( PageEventLookup::SERVICE_NAME ) |
145 | ); |
146 | }, |
147 | DeleteEventCommand::SERVICE_NAME => static function ( MediaWikiServices $services ): DeleteEventCommand { |
148 | return new DeleteEventCommand( |
149 | $services->get( IEventStore::STORE_SERVICE_NAME ), |
150 | $services->get( PermissionChecker::SERVICE_NAME ), |
151 | $services->get( TrackingToolEventWatcher::SERVICE_NAME ) |
152 | ); |
153 | }, |
154 | RoleFormatter::SERVICE_NAME => static function ( MediaWikiServices $services ): RoleFormatter { |
155 | return new RoleFormatter( |
156 | $services->getMessageFormatterFactory() |
157 | ); |
158 | }, |
159 | RegisterParticipantCommand::SERVICE_NAME => |
160 | static function ( MediaWikiServices $services ): RegisterParticipantCommand { |
161 | return new RegisterParticipantCommand( |
162 | $services->get( ParticipantsStore::SERVICE_NAME ), |
163 | $services->get( PermissionChecker::SERVICE_NAME ), |
164 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
165 | $services->get( UserNotifier::SERVICE_NAME ), |
166 | $services->get( EventPageCacheUpdater::SERVICE_NAME ), |
167 | $services->get( TrackingToolEventWatcher::SERVICE_NAME ) |
168 | ); |
169 | }, |
170 | UnregisterParticipantCommand::SERVICE_NAME => |
171 | static function ( MediaWikiServices $services ): UnregisterParticipantCommand { |
172 | return new UnregisterParticipantCommand( |
173 | $services->get( ParticipantsStore::SERVICE_NAME ), |
174 | $services->get( PermissionChecker::SERVICE_NAME ), |
175 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
176 | $services->get( EventPageCacheUpdater::SERVICE_NAME ), |
177 | $services->get( TrackingToolEventWatcher::SERVICE_NAME ) |
178 | ); |
179 | }, |
180 | EventsPagerFactory::SERVICE_NAME => static function ( MediaWikiServices $services ): EventsPagerFactory { |
181 | return new EventsPagerFactory( |
182 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ), |
183 | $services->get( CampaignsPageFactory::SERVICE_NAME ), |
184 | $services->get( PageURLResolver::SERVICE_NAME ), |
185 | $services->getLinkBatchFactory(), |
186 | $services->get( UserLinker::SERVICE_NAME ), |
187 | $services->get( OrganizersStore::SERVICE_NAME ), |
188 | $services->getUserOptionsLookup() |
189 | ); |
190 | }, |
191 | EventPageDecoratorFactory::SERVICE_NAME => |
192 | static function ( MediaWikiServices $services ): EventPageDecoratorFactory { |
193 | return new EventPageDecoratorFactory( |
194 | $services->get( PageEventLookup::SERVICE_NAME ), |
195 | $services->get( ParticipantsStore::SERVICE_NAME ), |
196 | $services->get( OrganizersStore::SERVICE_NAME ), |
197 | $services->get( PermissionChecker::SERVICE_NAME ), |
198 | $services->getMessageFormatterFactory(), |
199 | $services->getLinkRenderer(), |
200 | $services->get( CampaignsPageFactory::SERVICE_NAME ), |
201 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
202 | $services->get( UserLinker::SERVICE_NAME ), |
203 | $services->get( EventTimeFormatter::SERVICE_NAME ), |
204 | $services->get( EventPageCacheUpdater::SERVICE_NAME ), |
205 | $services->get( EventQuestionsRegistry::SERVICE_NAME ) |
206 | ); |
207 | }, |
208 | CampaignEventsHookRunner::SERVICE_NAME => |
209 | static function ( MediaWikiServices $services ): CampaignEventsHookRunner { |
210 | return new CampaignEventsHookRunner( $services->getHookContainer() ); |
211 | }, |
212 | PolicyMessagesLookup::SERVICE_NAME => static function ( MediaWikiServices $services ): PolicyMessagesLookup { |
213 | return new PolicyMessagesLookup( |
214 | $services->get( CampaignEventsHookRunner::SERVICE_NAME ) |
215 | ); |
216 | }, |
217 | PageURLResolver::SERVICE_NAME => static function ( MediaWikiServices $services ): PageURLResolver { |
218 | return new PageURLResolver( |
219 | $services->getTitleFactory() |
220 | ); |
221 | }, |
222 | PageEventLookup::SERVICE_NAME => static function ( MediaWikiServices $services ): PageEventLookup { |
223 | return new PageEventLookup( |
224 | $services->get( IEventLookup::LOOKUP_SERVICE_NAME ), |
225 | $services->get( CampaignsPageFactory::SERVICE_NAME ), |
226 | $services->getTitleFactory(), |
227 | ExtensionRegistry::getInstance()->isLoaded( 'Translate' ) |
228 | ); |
229 | }, |
230 | PageAuthorLookup::SERVICE_NAME => static function ( MediaWikiServices $services ): PageAuthorLookup { |
231 | return new PageAuthorLookup( |
232 | $services->getRevisionStoreFactory(), |
233 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ) |
234 | ); |
235 | }, |
236 | UserLinker::SERVICE_NAME => static function ( MediaWikiServices $services ): UserLinker { |
237 | return new UserLinker( |
238 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
239 | $services->getMessageFormatterFactory(), |
240 | $services->getLinkBatchFactory() |
241 | ); |
242 | }, |
243 | FrontendModulesFactory::SERVICE_NAME => static function ( MediaWikiServices $services ): FrontendModulesFactory { |
244 | return new FrontendModulesFactory( |
245 | $services->getMessageFormatterFactory(), |
246 | $services->get( OrganizersStore::SERVICE_NAME ), |
247 | $services->get( ParticipantsStore::SERVICE_NAME ), |
248 | $services->get( PageURLResolver::SERVICE_NAME ), |
249 | $services->get( UserLinker::SERVICE_NAME ), |
250 | $services->get( CampaignsCentralUserLookup::SERVICE_NAME ), |
251 | $services->get( PermissionChecker::SERVICE_NAME ), |
252 | $services->get( EventTimeFormatter::SERVICE_NAME ), |
253 | $services->getUserFactory(), |
254 | $services->get( TrackingToolRegistry::SERVICE_NAME ), |
255 | $services->get( CampaignsUserMailer::SERVICE_NAME ), |
256 | $services->get( ParticipantAnswersStore::SERVICE_NAME ), |
257 | $services->get( EventAggregatedAnswersStore::SERVICE_NAME ), |
258 | $services->get( EventQuestionsRegistry::SERVICE_NAME ), |
259 | $services->get( CampaignEventsHookRunner::SERVICE_NAME ) |
260 | ); |
261 | }, |
262 | AddressStore::SERVICE_NAME => static function ( MediaWikiServices $services ): AddressStore { |
263 | return new AddressStore( |
264 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
265 | ); |
266 | }, |
267 | TrackingToolRegistry::SERVICE_NAME => static function ( MediaWikiServices $services ): TrackingToolRegistry { |
268 | return new TrackingToolRegistry( |
269 | $services->getObjectFactory(), |
270 | new ServiceOptions( |
271 | TrackingToolRegistry::CONSTRUCTOR_OPTIONS, |
272 | $services->getMainConfig() |
273 | ) |
274 | ); |
275 | }, |
276 | EventTimeFormatter::SERVICE_NAME => static function ( MediaWikiServices $services ): EventTimeFormatter { |
277 | return new EventTimeFormatter( |
278 | $services->getUserOptionsLookup() |
279 | ); |
280 | }, |
281 | UserNotifier::SERVICE_NAME => static function ( MediaWikiServices $services ): UserNotifier { |
282 | return new UserNotifier( |
283 | ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) |
284 | ); |
285 | }, |
286 | MWPermissionsLookup::SERVICE_NAME => static function ( MediaWikiServices $services ): MWPermissionsLookup { |
287 | return new MWPermissionsLookup( |
288 | $services->getUserFactory(), |
289 | $services->getUserNameUtils() |
290 | ); |
291 | }, |
292 | EventPageCacheUpdater::SERVICE_NAME => static function ( MediaWikiServices $services ): EventPageCacheUpdater { |
293 | return new EventPageCacheUpdater( |
294 | $services->getHtmlCacheUpdater() |
295 | ); |
296 | }, |
297 | TrackingToolEventWatcher::SERVICE_NAME => |
298 | static function ( MediaWikiServices $services ): TrackingToolEventWatcher { |
299 | return new TrackingToolEventWatcher( |
300 | $services->get( TrackingToolRegistry::SERVICE_NAME ), |
301 | $services->get( TrackingToolUpdater::SERVICE_NAME ), |
302 | LoggerFactory::getInstance( 'CampaignEvents' ) |
303 | ); |
304 | }, |
305 | TrackingToolUpdater::SERVICE_NAME => static function ( MediaWikiServices $services ): TrackingToolUpdater { |
306 | return new TrackingToolUpdater( |
307 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
308 | ); |
309 | }, |
310 | EventQuestionsRegistry::SERVICE_NAME => static function ( MediaWikiServices $services ): EventQuestionsRegistry { |
311 | return new EventQuestionsRegistry( |
312 | $services->getMainConfig()->get( 'CampaignEventsEnableWikimediaParticipantQuestions' ) |
313 | ); |
314 | }, |
315 | EventQuestionsStore::SERVICE_NAME => static function ( MediaWikiServices $services ): EventQuestionsStore { |
316 | return new EventQuestionsStore( |
317 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
318 | ); |
319 | }, |
320 | ParticipantAnswersStore::SERVICE_NAME => static function ( MediaWikiServices $services ): ParticipantAnswersStore { |
321 | return new ParticipantAnswersStore( |
322 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
323 | ); |
324 | }, |
325 | EventAggregatedAnswersStore::SERVICE_NAME => static function ( |
326 | MediaWikiServices $services |
327 | ): EventAggregatedAnswersStore { |
328 | return new EventAggregatedAnswersStore( |
329 | $services->get( CampaignsDatabaseHelper::SERVICE_NAME ) |
330 | ); |
331 | }, |
332 | ]; |