From: Timo Tijhof Date: Sat, 1 Apr 2017 00:58:43 +0000 (-0700) Subject: resourceloader: Complete code coverage for MessageBlobStore X-Git-Tag: 1.31.0-rc.0~3639^2 X-Git-Url: http://git.cyclocoop.org/%7B%24www_url%7Dadmin/compta/categories/modifier.php?a=commitdiff_plain;h=1c200d76820860c3902a78c69e52d490c2f6f692;p=lhc%2Fweb%2Fwiklou.git resourceloader: Complete code coverage for MessageBlobStore Change-Id: I6269843ed51c67bf2d300eb58a613122ffdae740 --- diff --git a/includes/cache/MessageBlobStore.php b/includes/cache/MessageBlobStore.php index 5d48c03dfc..14baeeb22b 100644 --- a/includes/cache/MessageBlobStore.php +++ b/includes/cache/MessageBlobStore.php @@ -238,6 +238,7 @@ class MessageBlobStore implements LoggerAwareInterface { } $json = FormatJson::encode( (object)$messages ); + // @codeCoverageIgnoreStart if ( $json === false ) { $this->logger->warning( 'Failed to encode message blob for {module} ({lang})', [ 'module' => $module->getName(), @@ -245,6 +246,7 @@ class MessageBlobStore implements LoggerAwareInterface { ] ); $json = '{}'; } + // codeCoverageIgnoreEnd return $json; } } diff --git a/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php b/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php index bf80845976..29e18633b4 100644 --- a/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php +++ b/tests/phpunit/includes/resourceloader/MessageBlobStoreTest.php @@ -44,6 +44,46 @@ class MessageBlobStoreTest extends PHPUnit_Framework_TestCase { return $module; } + /** @covers MessageBlobStore::setLogger */ + public function testSetLogger() { + $blobStore = $this->makeBlobStore(); + $this->assertSame( null, $blobStore->setLogger( new Psr\Log\NullLogger() ) ); + } + + /** @covers MessageBlobStore::getResourceLoader */ + public function testGetResourceLoader() { + // Call protected method + $blobStore = TestingAccessWrapper::newFromObject( $this->makeBlobStore() ); + $this->assertInstanceOf( + ResourceLoader::class, + $blobStore->getResourceLoader() + ); + } + + /** @covers MessageBlobStore::fetchMessage */ + public function testFetchMessage() { + $module = $this->makeModule( [ 'mainpage' ] ); + $rl = new ResourceLoader(); + $rl->register( $module->getName(), $module ); + + $blobStore = $this->makeBlobStore( null, $rl ); + $blob = $blobStore->getBlob( $module, 'en' ); + + $this->assertEquals( '{"mainpage":"Main Page"}', $blob, 'Generated blob' ); + } + + /** @covers MessageBlobStore::fetchMessage */ + public function testFetchMessageFail() { + $module = $this->makeModule( [ 'i-dont-exist' ] ); + $rl = new ResourceLoader(); + $rl->register( $module->getName(), $module ); + + $blobStore = $this->makeBlobStore( null, $rl ); + $blob = $blobStore->getBlob( $module, 'en' ); + + $this->assertEquals( '{"i-dont-exist":"\u29fci-dont-exist\u29fd"}', $blob, 'Generated blob' ); + } + public function testGetBlob() { $module = $this->makeModule( [ 'foo' ] ); $rl = new ResourceLoader();