public function testRestoreByCopyingOldVersion() { $this->_filesystem->write('bar', 'mega1'); sleep(1); $this->_filesystem->write('bar', 'mega2'); sleep(1); $this->_filesystem->delete('bar'); sleep(1); $this->_filesystem->write('bar', 'mega3'); sleep(1); $this->_filesystem->write('bar', 'mega4'); $versionList = $this->_restore->getVersions('bar'); /** @var DateTime[] $lastModifiedList */ $lastModifiedList = Functional\map($versionList, function (CMService_AwsS3Versioning_Response_Version $version) { return $version->getLastModified(); }); $this->_restore->restoreByCopyingOldVersion('bar', $lastModifiedList[0]->add(new DateInterval('PT1S'))); $this->assertCount(5, $this->_restore->getVersions('bar')); $this->assertSame('mega4', $this->_filesystem->read('bar')); $this->_restore->restoreByCopyingOldVersion('bar', $lastModifiedList[1]); $this->assertCount(6, $this->_restore->getVersions('bar')); $this->assertSame('mega3', $this->_filesystem->read('bar')); $this->_restore->restoreByCopyingOldVersion('bar', $lastModifiedList[2]); $this->assertCount(7, $this->_restore->getVersions('bar')); $this->assertSame(false, $this->_filesystem->exists('bar')); $this->_restore->restoreByCopyingOldVersion('bar', $lastModifiedList[4]); $this->assertCount(8, $this->_restore->getVersions('bar')); $this->assertSame('mega1', $this->_filesystem->read('bar')); $this->_restore->restoreByCopyingOldVersion('bar', $lastModifiedList[4]->sub(new DateInterval('PT1S'))); $this->assertCount(9, $this->_restore->getVersions('bar')); $this->assertSame(false, $this->_filesystem->exists('bar')); }
/** * @return bool */ public function exists() { return $this->_filesystem->exists($this->getPath()); }