public function testDecoratedMethods() { $decorated = $this->getMockBuilder('hanneskod\\classtools\\Tests\\MockSplFileInfo')->setConstructorArgs([''])->getMock(); $decorated->expects($this->once())->method('getRelativePath'); $decorated->expects($this->once())->method('getRelativePathname'); $decorated->expects($this->once())->method('getContents'); $decorated->expects($this->once())->method('getATime'); $decorated->expects($this->once())->method('getBasename'); $decorated->expects($this->once())->method('getCTime'); $decorated->expects($this->once())->method('getExtension'); $decorated->expects($this->once())->method('getFileInfo'); $decorated->expects($this->once())->method('getFilename'); $decorated->expects($this->once())->method('getGroup'); $decorated->expects($this->once())->method('getInode'); $decorated->expects($this->once())->method('getLinkTarget'); $decorated->expects($this->once())->method('getMTime'); $decorated->expects($this->once())->method('getOwner'); $decorated->expects($this->once())->method('getPath'); $decorated->expects($this->once())->method('getPathInfo'); $decorated->expects($this->once())->method('getPathname'); $decorated->expects($this->once())->method('getPerms'); $decorated->expects($this->once())->method('getRealPath'); $decorated->expects($this->once())->method('getSize'); $decorated->expects($this->once())->method('getType'); $decorated->expects($this->once())->method('isDir'); $decorated->expects($this->once())->method('isExecutable'); $decorated->expects($this->once())->method('isFile'); $decorated->expects($this->once())->method('isLink'); $decorated->expects($this->once())->method('isReadable'); $decorated->expects($this->once())->method('isWritable'); $decorated->expects($this->once())->method('openFile'); $decorated->expects($this->once())->method('setFileClass'); $decorated->expects($this->once())->method('setInfoClass'); $decorated->expects($this->once())->method('__toString')->will($this->returnValue('')); $fileInfo = new SplFileInfo($decorated); $fileInfo->getRelativePath(); $fileInfo->getRelativePathname(); $fileInfo->getContents(); $fileInfo->getATime(); $fileInfo->getBasename(); $fileInfo->getCTime(); $fileInfo->getExtension(); $fileInfo->getFileInfo(); $fileInfo->getFilename(); $fileInfo->getGroup(); $fileInfo->getInode(); $fileInfo->getLinkTarget(); $fileInfo->getMTime(); $fileInfo->getOwner(); $fileInfo->getPath(); $fileInfo->getPathInfo(); $fileInfo->getPathname(); $fileInfo->getPerms(); $fileInfo->getRealPath(); $fileInfo->getSize(); $fileInfo->getType(); $fileInfo->isDir(); $fileInfo->isExecutable(); $fileInfo->isFile(); $fileInfo->isLink(); $fileInfo->isReadable(); $fileInfo->isWritable(); $fileInfo->openFile(); $fileInfo->setFileClass(); $fileInfo->setInfoClass(); (string) $fileInfo; }
/** * Uploads a file or directory to an FTP connection. * * @param \Ftp $ftp An active FTP connection. * @param \SplFileInfo $file A local file to upload. */ protected function upload(\Ftp $ftp, \SplFileInfo $file) { // enter into passive mode $ftp->pasv(true); // move to the file's parent directory $ftp->chdir($this->targetDirectory . '/' . $file->getRelativePath()); // check if the file exists $fileExists = in_array($file->getBasename(), $ftp->nlist('.')); // check if the file is a directory if ($file->isDir()) { // create the directory if it does not exist if (!$fileExists) { $this->printTaskInfo('Creating directory: ' . $file->getRelativePathname()); // create directory $ftp->mkdir($file->getBasename()); } } else { // if the file already exists, check our skip options if ($fileExists) { // skip the file if the file sizes are equal if ($this->skipSizeEqual && $ftp->size($file->getBasename()) === $file->getSize()) { return; } // skip the file if modified time is same or newer than source if ($this->skipUnmodified && $ftp->mdtm($file->getBasename()) >= $file->getMTime()) { return; } } // try to upload the file $this->printTaskInfo('Uploading: ' . $file->getRelativePathname()); if (!$ftp->put($file->getBasename(), $file->getRealpath(), FTP_BINARY)) { // something went wrong return Result::error($this, 'Failed while uploading file ' . $file->getRelativePathname()); } } }