Add tests for MediawikiTestCase::setService stuff
authoraddshore <addshorewiki@gmail.com>
Mon, 2 May 2016 13:56:53 +0000 (14:56 +0100)
committerAddshore <addshorewiki@gmail.com>
Fri, 6 May 2016 14:35:27 +0000 (14:35 +0000)
Change-Id: If689d85f42ae26e786d599f59e76d3ebdfa22212

tests/phpunit/tests/MediaWikiTestCaseTest.php

index 955dd2f..5d2f37e 100644 (file)
@@ -1,5 +1,6 @@
 <?php
 use MediaWiki\Logger\LoggerFactory;
+use MediaWiki\MediaWikiServices;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -99,6 +100,36 @@ class MediaWikiTestCaseTest extends MediaWikiTestCase {
                $this->stashMwGlobals( self::GLOBAL_KEY_NONEXISTING );
        }
 
+       public function testOverrideMwServices() {
+               $initialServices = MediaWikiServices::getInstance();
+
+               $this->overrideMwServices();
+               $this->assertNotSame( $initialServices, MediaWikiServices::getInstance() );
+
+               $this->tearDown();
+               $this->assertSame( $initialServices, MediaWikiServices::getInstance() );
+       }
+
+       public function testSetService() {
+               $initialServices = MediaWikiServices::getInstance();
+               $initialService = $initialServices->getDBLoadBalancer();
+               $mockService = $this->getMockBuilder( LoadBalancer::class )
+                       ->disableOriginalConstructor()->getMock();
+
+               $this->setService( 'DBLoadBalancer', $mockService );
+               $this->assertNotSame( $initialServices, MediaWikiServices::getInstance() );
+               $this->assertNotSame(
+                       $initialService,
+                       MediaWikiServices::getInstance()->getDBLoadBalancer()
+               );
+               $this->assertSame( $mockService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+
+               $this->tearDown();
+               $this->assertSame( $initialServices, MediaWikiServices::getInstance() );
+               $this->assertNotSame( $mockService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+               $this->assertSame( $initialService, MediaWikiServices::getInstance()->getDBLoadBalancer() );
+       }
+
        /**
         * @covers MediaWikiTestCase::setLogger
         * @covers MediaWikiTestCase::restoreLogger