| Current File : /home/jvzmxxx/wiki/extensions/Wikibase/lib/tests/phpunit/UnionContentLanguagesTest.php |
<?php
namespace Wikibase\Lib\Test;
use PHPUnit_Framework_TestCase;
use Wikibase\Lib\ContentLanguages;
use Wikibase\Lib\StaticContentLanguages;
use Wikibase\Lib\UnionContentLanguages;
/**
* @covers Wikibase\Lib\UnionContentLanguages
*
* @group WikibaseLib
* @group Wikibase
*
* @license GPL-2.0+
* @author Adrian Heine <adrian.heine@wikimedia.de>
*/
class UnionContentLanguagesTest extends PHPUnit_Framework_TestCase {
/**
* @dataProvider provideTestGetLanguages
*/
public function testGetLanguages( ContentLanguages $a, ContentLanguages $b, array $expected ) {
$contentLanguages = new UnionContentLanguages( $a, $b );
$result = $contentLanguages->getLanguages();
$this->assertSame( $expected, $result );
}
public function provideTestGetLanguages() {
$empty = new StaticContentLanguages( array() );
$one = new StaticContentLanguages( array( 'one' ) );
$two = new StaticContentLanguages( array( 'one', 'two' ) );
$otherTwo = new StaticContentLanguages( array( 'three', 'four' ) );
return array(
array( $empty, $empty, array() ),
array( $empty, $one, array( 'one' ) ),
array( $one, $empty, array( 'one' ) ),
array( $one, $two, array( 'one', 'two' ) ),
array( $two, $one, array( 'one', 'two' ) ),
array( $two, $otherTwo, array( 'one', 'two', 'three', 'four' ) ),
);
}
/**
* @dataProvider provideTestHasLanguage
*/
public function testHasLanguage( ContentLanguages $a, ContentLanguages $b, $lang, $expected ) {
$contentLanguages = new UnionContentLanguages( $a, $b );
$result = $contentLanguages->hasLanguage( $lang );
$this->assertSame( $expected, $result );
}
public function provideTestHasLanguage() {
$empty = new StaticContentLanguages( array() );
$one = new StaticContentLanguages( array( 'one' ) );
$two = new StaticContentLanguages( array( 'one', 'two' ) );
$otherTwo = new StaticContentLanguages( array( 'three', 'four' ) );
return array(
array( $empty, $empty, 'one', false ),
array( $empty, $one, 'one', true ),
array( $empty, $one, 'two', false ),
array( $two, $one, 'one', true ),
array( $two, $one, 'two', true ),
array( $two, $one, 'three', false ),
array( $two, $otherTwo, 'one', true ),
array( $two, $otherTwo, 'two', true ),
array( $two, $otherTwo, 'three', true ),
array( $two, $otherTwo, 'four', true ),
);
}
}