Current File : /home/jvzmxxx/wiki/extensions/Wikibase/client/tests/phpunit/includes/Usage/PageEntityUsagesTest.php
<?php

namespace Wikibase\Client\Tests\Usage;

use PHPUnit_Framework_TestCase;
use Wikibase\Client\Usage\EntityUsage;
use Wikibase\Client\Usage\PageEntityUsages;
use Wikibase\DataModel\Entity\ItemId;

/**
 * @covers Wikibase\Client\Usage\PageEntityUsages
 *
 * @group Wikibase
 * @group WikibaseClient
 * @group WikibaseUsageTracking
 *
 * @license GPL-2.0+
 * @author Daniel Kinzler
 */
class PageEntityUsagesTest extends PHPUnit_Framework_TestCase {

	public function testGetters() {
		$q7 = new ItemId( 'Q7' );
		$q11 = new ItemId( 'Q11' );

		$usages = array(
			new EntityUsage( $q7, EntityUsage::ALL_USAGE ),
			new EntityUsage( $q11, EntityUsage::LABEL_USAGE, 'de' ),
			new EntityUsage( $q11, EntityUsage::LABEL_USAGE, 'en' ),
			new EntityUsage( $q11, EntityUsage::TITLE_USAGE ),
		);

		$pageUsages = new PageEntityUsages( 6, $usages );

		$this->assertEquals( 6, $pageUsages->getPageId() );

		$expectedAspects = array(
			EntityUsage::LABEL_USAGE,
			EntityUsage::TITLE_USAGE,
			EntityUsage::ALL_USAGE,
		);

		$expectedAspectKeys = array(
			EntityUsage::LABEL_USAGE . '.de',
			EntityUsage::LABEL_USAGE . '.en',
			EntityUsage::TITLE_USAGE,
			EntityUsage::ALL_USAGE,
		);

		$expectedAspectKeysQ11 = array(
			EntityUsage::LABEL_USAGE . '.de',
			EntityUsage::LABEL_USAGE . '.en',
			EntityUsage::TITLE_USAGE,
		);

		$this->assertEquals( $expectedAspects, $pageUsages->getAspects(), 'getAspects' );
		$this->assertEquals( $expectedAspectKeys, $pageUsages->getAspectKeys(), 'getAspectKeys' );
		$this->assertEquals(
			array( 'Q11' => $q11, 'Q7' => $q7 ),
			$pageUsages->getEntityIds(),
			'getEntityIds'
		);
		$this->assertEquals(
			array( 'Q11#L.de', 'Q11#L.en', 'Q11#T', 'Q7#X' ),
			array_keys( $pageUsages->getUsages() ),
			'getUsagesCallback'
		);

		$this->assertEquals(
			$expectedAspectKeysQ11,
			$pageUsages->getUsageAspectKeys( $q11 ),
			'getUsageAspects'
		);
	}

}