. * * @file * @ingroup extensions */ use Popups\EventLogging\EventLoggerFactory; use Popups\EventLogging\MWEventLogger; use Popups\EventLogging\NullLogger; /** * @group Popups * @coversDefaultClass \Popups\EventLogging\EventLoggerFactory */ class EventLoggerFactoryTest extends MediaWikiUnitTestCase { /** * @covers ::__construct * @covers ::get * @covers \Popups\EventLogging\MWEventLogger::__construct */ public function testReturnsMWEventWhenEventLoggingIsAvailable() { $mock = $this->createMock( ExtensionRegistry::class ); $mock->expects( $this->once() ) ->method( 'isLoaded' ) ->with( 'EventLogging' ) ->willReturn( true ); $factory = new EventLoggerFactory( $mock ); $this->assertInstanceOf( MWEventLogger::class, $factory->get(), 'A functional event logger is instantiated.' ); } /** * @covers ::__construct * @covers ::get */ public function testReturnsMWEventWhenEventLoggingIsNotAvailable() { $mock = $this->createMock( ExtensionRegistry::class ); $mock->expects( $this->once() ) ->method( 'isLoaded' ) ->with( 'EventLogging' ) ->willReturn( false ); $factory = new EventLoggerFactory( $mock ); $this->assertInstanceOf( NullLogger::class, $factory->get(), 'A no-op event logger is instantiated.' ); } }