/** * Test that migrating by date chooses the correct migration to point to. * * @dataProvider rollbackDateDataProvider */ public function testRollbacksByDate($availableRollbacks, $dateString, $expectedRollback) { // stub environment $envStub = $this->getMock('\\Phinx\\Migration\\Manager\\Environment', array(), array('mockenv', array())); $envStub->expects($this->any())->method('getVersions')->will($this->returnValue($availableRollbacks)); $this->manager->setEnvironments(array('mockenv' => $envStub)); $this->manager->rollbackToDateTime('mockenv', new \DateTime($dateString)); rewind($this->manager->getOutput()->getStream()); $output = stream_get_contents($this->manager->getOutput()->getStream()); if (is_null($expectedRollback)) { $this->assertEmpty($output); } else { $this->assertContains($expectedRollback, $output); } }