This extension supports working with FlySystem with several adapters.
Provides a set of methods for checking and modifying files on remote storage.
-
Install library
composer require lamoda/codeception-flysystem
-
Add configuration to codeception.yml
modules: config: \Lamoda\Codeception\Extension\FlySystemModule: adapters: webdav: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\WebdavAdapterFactory config: baseUri: "http://webdav-host" userName: "userName" password: "password" authType: "authType" sftp: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\SftpAdapterFactory config: host: "http://sftp-host" username: "username" password: "password" port: "22" root: "/" s3: builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\AwsS3AdapterFactory config: bucket: "your-bucket" endpoint: "endpoint" # if you are using S3-compatible object storage service credentials: key: "key" secret: "secret" region: "region" version: "version"
-
Include to suite
modules: enabled: - \Lamoda\Codeception\Extension\FlySystemModule
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
sftp:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\SftpAdapterFactory
config:
host: "http://sftp-host"
username: "username"
password: "password"
port: "22"
root: "/"
Usage:
$fileSystem = $this->tester->getFileSystem('sftp');
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
webdav:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\WebdavAdapterFactory
config:
baseUri: "http://webdav-host"
userName: "userName"
password: "password"
authType: "authType"
Usage:
$fileSystem = $this->tester->getFileSystem('webdav');
Configuration example:
modules:
config:
\Lamoda\Codeception\Extension\FlySystemModule:
adapters:
s3:
builderAdapter: \Lamoda\Codeception\Extension\AdapterFactory\AwsS3AdapterFactory
config:
bucket: "your-bucket"
endpoint: "endpoint" # if you are using S3-compatible object storage service
credentials:
key: "key"
secret: "secret"
region: "region"
version: "version"
Usage:
$fileSystem = $this->tester->getFileSystem('s3');
Get instance of FileSystem by name from config:
$fileSystem = $this->tester->getFileSystem('sftp');
Modify file on remote server:
$fileSystem->clearDir('/path/to/dir');
$fileSystem->writeFile('test.txt', 'Hello world!');
$fileSystem->copyFile('test.txt', 'test_copy.txt');
$fileSystem->deleteFile('test.txt');
$files = $fileSystem->grabFileList('/path/to/dir');
Check files on remote server:
$fileSystem->canSeeFile('test_copy.txt');
$fileSystem->cantSeeFile('test.txt');
$fileSystem->seeInFile('test_copy.txt', 'Hello');
$fileSystem->seeFilesCount('/path/to/dir', 1);
$fileSystem->seeFileFoundMatches('/copy$/', '/path/to/dir');
$fileSystem->dontSeeFileFoundMatches('/test$/', '/path/to/dir');
make php-cs-check
make php-cs-fix
Unit
make test-unit