/** * Check if ignored version skipping works as expected. * * @param string $version * @param array $ignoredVersions * @param bool $shouldSkip * @param string $expectedMessage * * @dataProvider getIgnoreVersionData() */ public function testIgnoreVersion($version, $ignoredVersions, $shouldSkip, $expectedMessage = '') { $actualMessage = ''; $skipped = false; $this->dummyBase = $this->getMockBuilder('ONGR\\ElasticsearchBundle\\Tests\\Unit\\Test\\ElasticsearchTestCaseDummy')->setMethods(['getIgnoredVersions', 'getContainer'])->disableOriginalConstructor()->getMock(); $this->dummyBase->expects($this->any())->method('getContainer')->will($this->returnValue($this->containerMock)); $this->dummyBase->expects($this->once())->method('getIgnoredVersions')->willReturn($ignoredVersions); $this->containerMock->expects($this->once())->method('has')->with('es.manager.default')->will($this->returnValue(true)); $this->containerMock->expects($this->once())->method('get')->with('es.manager.default')->will($this->returnValue($this->managerMock)); $this->managerMock->expects($this->once())->method('getConnection')->willReturn($this->connectionMock); $this->connectionMock->expects($shouldSkip ? $this->never() : $this->once())->method('dropAndCreateIndex'); $this->connectionMock->expects($this->once())->method('getVersionNumber')->willReturn($version); $reflection = new \ReflectionMethod($this->dummyBase, 'setUp'); $reflection->setAccessible(true); try { $reflection->invokeArgs($this->dummyBase, []); } catch (\PHPUnit_Framework_SkippedTestError $ex) { $actualMessage = $ex->getMessage(); $skipped = true; } $this->assertEquals($shouldSkip, $skipped); $this->assertEquals($actualMessage, $expectedMessage); }