diff options
Diffstat (limited to 'vendor/ruflin/elastica/test/lib/Elastica/Test/Connection/Strategy/StrategyFactoryTest.php')
-rw-r--r-- | vendor/ruflin/elastica/test/lib/Elastica/Test/Connection/Strategy/StrategyFactoryTest.php | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/vendor/ruflin/elastica/test/lib/Elastica/Test/Connection/Strategy/StrategyFactoryTest.php b/vendor/ruflin/elastica/test/lib/Elastica/Test/Connection/Strategy/StrategyFactoryTest.php new file mode 100644 index 00000000..978f8fd5 --- /dev/null +++ b/vendor/ruflin/elastica/test/lib/Elastica/Test/Connection/Strategy/StrategyFactoryTest.php @@ -0,0 +1,84 @@ +<?php +namespace Elastica\Test\Connection\Strategy; + +use Elastica\Connection\Strategy\StrategyFactory; +use Elastica\Test\Base; + +/** + * Description of StrategyFactoryTest. + * + * @author chabior + */ +class StrategyFactoryTest extends Base +{ + /** + * @group unit + */ + public function testCreateCallbackStrategy() + { + $callback = function ($connections) { + }; + + $strategy = StrategyFactory::create($callback); + + $this->assertInstanceOf('Elastica\Connection\Strategy\CallbackStrategy', $strategy); + } + + /** + * @group unit + */ + public function testCreateByName() + { + $strategyName = 'Simple'; + + $strategy = StrategyFactory::create($strategyName); + + $this->assertInstanceOf('Elastica\Connection\Strategy\Simple', $strategy); + } + + /** + * @group unit + */ + public function testCreateByClass() + { + $strategy = new EmptyStrategy(); + + $this->assertEquals($strategy, StrategyFactory::create($strategy)); + } + + /** + * @group unit + */ + public function testCreateByClassName() + { + $strategyName = '\\Elastica\Test\Connection\Strategy\\EmptyStrategy'; + + $strategy = StrategyFactory::create($strategyName); + + $this->assertInstanceOf($strategyName, $strategy); + } + + /** + * @group unit + * @expectedException \InvalidArgumentException + */ + public function testFailCreate() + { + $strategy = new \stdClass(); + + StrategyFactory::create($strategy); + } + + /** + * @group unit + */ + public function testNoCollisionWithGlobalNamespace() + { + // create collision + if (!class_exists('Simple')) { + class_alias('Elastica\Util', 'Simple'); + } + $strategy = StrategyFactory::create('Simple'); + $this->assertInstanceOf('Elastica\Connection\Strategy\Simple', $strategy); + } +} |