Current File : /home/jvzmxxx/wiki1/extensions/Wikibase/repo/tests/phpunit/includes/ValueParserFactoryTest.php
<?php

namespace Wikibase\Tests\Repo;

use ValueParsers\NullParser;
use ValueParsers\ParserOptions;
use ValueParsers\ValueParser;
use Wikibase\Repo\ValueParserFactory;

/**
 * @covers Wikibase\Repo\ValueParserFactory
 *
 * @group Wikibase
 * @group WikibaseRepo
 * @group WikibaseRepoTest
 *
 * @license GPL-2.0+
 * @author Adrian Heine <adrian.heine@wikimedia.de>
 */
class ValueParserFactoryTest extends \PHPUnit_Framework_TestCase {

	/**
	 * @dataProvider provideFactoryFunctions
	 */
	public function testGetParserIds( $factoryFunctions ) {
		$valueParserFactory = new ValueParserFactory( $factoryFunctions );

		$returnValue = $valueParserFactory->getParserIds();

		$this->assertEquals( array_keys( $factoryFunctions ), $returnValue );
	}

	public function provideFactoryFunctions() {
		return array(
			array(
				array(
					'foo' => function() {
						return new NullParser();
					}
				),
			)
		);
	}

	/**
	 * @dataProvider provideFactoryFunctions
	 */
	public function testNewParser( $factoryFunctions ) {
		$valueParserFactory = new ValueParserFactory( $factoryFunctions );
		$options = new ParserOptions();

		foreach ( $valueParserFactory->getParserIds() as $id ) {
			$parser = $valueParserFactory->newParser( $id, $options );
			$this->assertInstanceOf( ValueParser::class, $parser );
		}
	}

}