mirror of
https://gh.wpcy.net/https://github.com/typisttech/image-optimize-command.git
synced 2026-05-22 00:00:03 +08:00
132 lines
3.7 KiB
PHP
132 lines
3.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace TypistTech\ImageOptimizeCommand\Operations;
|
|
|
|
use Codeception\Module\Filesystem as FilesystemModule;
|
|
use Mockery;
|
|
use Symfony\Component\Filesystem\Filesystem;
|
|
use TypistTech\ImageOptimizeCommand\CLI\Logger;
|
|
use WP_Mock;
|
|
|
|
class BackupTest extends \Codeception\Test\Unit
|
|
{
|
|
/**
|
|
* @var \TypistTech\ImageOptimizeCommand\UnitTester
|
|
*/
|
|
protected $tester;
|
|
|
|
/**
|
|
* @var FilesystemModule
|
|
*/
|
|
protected $filesystem;
|
|
|
|
/**
|
|
* @var string
|
|
*/
|
|
protected $testDir;
|
|
|
|
public function testBackupSuccess()
|
|
{
|
|
$logger = Mockery::spy(Logger::class);
|
|
|
|
$backup = new Backup(
|
|
new Filesystem(),
|
|
$logger
|
|
);
|
|
|
|
$backup->execute($this->testDir . '/tangrufus.jpeg');
|
|
|
|
$this->filesystem->seeFileFound('tangrufus.jpeg', $this->testDir);
|
|
$this->filesystem->seeFileFound('tangrufus.jpeg.original', $this->testDir);
|
|
$logger->shouldHaveReceived('section')
|
|
->with('Backing up 1 full sized image(s)')
|
|
->once();
|
|
}
|
|
|
|
public function testBackupOriginalNotExist()
|
|
{
|
|
$logger = Mockery::spy(Logger::class);
|
|
|
|
$backup = new Backup(
|
|
new Filesystem(),
|
|
$logger
|
|
);
|
|
|
|
$backup->execute($this->testDir . '/not-exist.jpeg');
|
|
|
|
$this->filesystem->dontSeeFileFound('not-exist.jpeg', $this->testDir);
|
|
$this->filesystem->dontSeeFileFound('not-exist.jpeg.original', $this->testDir);
|
|
$logger->shouldHaveReceived('section')
|
|
->with('Backing up 1 full sized image(s)')
|
|
->once();
|
|
}
|
|
|
|
public function testBackupAlreadyExist()
|
|
{
|
|
$logger = Mockery::spy(Logger::class);
|
|
|
|
$backup = new Backup(
|
|
new Filesystem(),
|
|
$logger
|
|
);
|
|
|
|
$backup->execute($this->testDir . '/bot.png');
|
|
|
|
$this->filesystem->seeFileFound('bot.png', $this->testDir);
|
|
$this->filesystem->seeFileFound('bot.png.original', $this->testDir);
|
|
$logger->shouldHaveReceived('section')
|
|
->with('Backing up 1 full sized image(s)')
|
|
->once();
|
|
}
|
|
|
|
public function testBackup()
|
|
{
|
|
$logger = Mockery::spy(Logger::class);
|
|
|
|
$backup = new Backup(
|
|
new Filesystem(),
|
|
$logger
|
|
);
|
|
|
|
$backup->execute(
|
|
$this->testDir . '/bot.png',
|
|
$this->testDir . '/not-exist.jpeg',
|
|
$this->testDir . '/tangrufus.jpeg'
|
|
);
|
|
|
|
$this->filesystem->seeFileFound('bot.png', $this->testDir);
|
|
$this->filesystem->seeFileFound('bot.png.original', $this->testDir);
|
|
$this->filesystem->dontSeeFileFound('not-exist.jpeg', $this->testDir);
|
|
$this->filesystem->dontSeeFileFound('not-exist.jpeg.original', $this->testDir);
|
|
$this->filesystem->seeFileFound('tangrufus.jpeg', $this->testDir);
|
|
$this->filesystem->seeFileFound('tangrufus.jpeg.original', $this->testDir);
|
|
$logger->shouldHaveReceived('section')
|
|
->with('Backing up 3 full sized image(s)')
|
|
->once();
|
|
}
|
|
|
|
protected function _before()
|
|
{
|
|
$this->filesystem = $this->getModule('Filesystem');
|
|
$this->testDir = codecept_data_dir('tmp');
|
|
|
|
$this->filesystem->copyDir(
|
|
codecept_data_dir('images'),
|
|
$this->testDir
|
|
);
|
|
|
|
WP_Mock::userFunction('WP_CLI\Utils\normalize_path')
|
|
->with(Mockery::type('string'))
|
|
->andReturnUsing(function ($arg) {
|
|
return $arg;
|
|
})
|
|
->zeroOrMoreTimes();
|
|
}
|
|
|
|
protected function _after()
|
|
{
|
|
$this->filesystem->deleteDir($this->testDir);
|
|
}
|
|
}
|