wiki.techinc.nl/tests/phpunit/includes/externalstore/ExternalStoreFactoryTest.php
Kunal Mehta 75160bdd3b Use MediaWikiCoversValidator for tests that don't use MediaWikiTestCase
Change-Id: I8c4de7e9c72c9969088666007b54c6fd23f6cc13
2018-01-01 08:28:02 +00:00

41 lines
1.2 KiB
PHP

<?php
/**
* @covers ExternalStoreFactory
*/
class ExternalStoreFactoryTest extends PHPUnit_Framework_TestCase {
use MediaWikiCoversValidator;
public function testExternalStoreFactory_noStores() {
$factory = new ExternalStoreFactory( [] );
$this->assertFalse( $factory->getStoreObject( 'ForTesting' ) );
$this->assertFalse( $factory->getStoreObject( 'foo' ) );
}
public function provideStoreNames() {
yield 'Same case as construction' => [ 'ForTesting' ];
yield 'All lower case' => [ 'fortesting' ];
yield 'All upper case' => [ 'FORTESTING' ];
yield 'Mix of cases' => [ 'FOrTEsTInG' ];
}
/**
* @dataProvider provideStoreNames
*/
public function testExternalStoreFactory_someStore_protoMatch( $proto ) {
$factory = new ExternalStoreFactory( [ 'ForTesting' ] );
$store = $factory->getStoreObject( $proto );
$this->assertInstanceOf( ExternalStoreForTesting::class, $store );
}
/**
* @dataProvider provideStoreNames
*/
public function testExternalStoreFactory_someStore_noProtoMatch( $proto ) {
$factory = new ExternalStoreFactory( [ 'SomeOtherClassName' ] );
$store = $factory->getStoreObject( $proto );
$this->assertFalse( $store );
}
}