%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/wiki.varak.net/extensions/CirrusSearch/tests/unit/
Upload File :
Create Path :
Current File : /www/varak.net/wiki.varak.net/extensions/CirrusSearch/tests/unit/ClusterSettingsTest.php

<?php

namespace CirrusSearch;

class ClusterSettingsTest extends \PHPUnit_Framework_TestCase {

	public static function provideShardCount() {
		return [
			'Handles per-index shard counts' => [
				[ 'general' => 7 ],
				'eqiad',
				'general',
				7,
			],

			'Handles per-cluster shard counts' => [
				[ 'content' => 6, 'eqiad' => [ 'content' => 9 ] ],
				'eqiad',
				'content',
				9,
			],
		];
	}

	/**
	 * @dataProvider provideShardCount
	 */
	public function testShardCount( $shardCounts, $cluster, $indexType, $expect ) {
		$config = $this->getMockBuilder( 'CirrusSearch\SearchConfig' )
			->disableOriginalConstructor()
			->getMock();
		$config->expects( $this->any() )
			->method( 'get' )
			->with( 'CirrusSearchShardCount' )
			->will( $this->returnValue( $shardCounts ) );

		$settings = new ClusterSettings( $config, $cluster );
		$this->assertEquals( $expect, $settings->getShardCount( $indexType ) );
	}

	public static function provideReplicaCounts() {
		return [
			'Simple replica config returns exact setting ' => [
				'0-2',
				'eqiad',
				'content',
				'0-2',
			],

			'Accepts array for replica config' => [
				[ 'content' => '1-2' ],
				'eqiad',
				'content',
				'1-2',
			],

			'Accepts per-cluster replica config' => [
				[ 'content' => '1-2', 'eqiad' => [ 'content' => '2-3' ] ],
				'eqiad',
				'content',
				'2-3'
			],
		];
	}

	/**
	 * @dataProvider provideReplicaCounts
	 */
	public function testReplicaCount( $replicas, $cluster, $indexType, $expect) {
		$config = $this->getMockBuilder( 'CirrusSearch\SearchConfig' )
			->disableOriginalConstructor()
			->getMock();
		$config->expects( $this->any() )
			->method( 'get' )
			->with( 'CirrusSearchReplicas' )
			->will( $this->returnValue( $replicas ) );

		$settings = new ClusterSettings( $config, $cluster );
		$this->assertEquals( $expect, $settings->getReplicaCount( $indexType ) );
	}

	public static function provideDropDelayedJobsAfter() {
		return [
			'Simple integer timeout is returned directly' => [
				60, 'eqiad', 60
			],
			'Can set per-cluster timeout' => [
				[ 'eqiad' => 99, 'labsearch' => 42 ],
				'labsearch',
				42
			],
		];
	}

	/**
	 * @dataProvider provideDropDelayedJobsAfter()
	 */
	public function testDropDelayedJobsAfter( $timeout, $cluster, $expect ) {
		$config = $this->getMockBuilder( 'CirrusSearch\SearchConfig' )
			->disableOriginalConstructor()
			->getMock();
		$config->expects( $this->any() )
			->method( 'get' )
			->with( 'CirrusSearchDropDelayedJobsAfter' )
			->will( $this->returnValue( $timeout ) );

		$settings = new ClusterSettings( $config, $cluster );
		$this->assertEquals( $expect, $settings->getDropDelayedJobsAfter() );
	}
}

Zerion Mini Shell 1.0