More testing.
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
Jens True 2023-07-10 07:47:28 +00:00
parent 46121bfcca
commit 534c8cdbe6
6 changed files with 118 additions and 7 deletions

@ -21,5 +21,5 @@ install-dev:
test:
vendor/bin/phpunit tests
test-coverage:
vendor/bin/phpunit tests --testdox --coverage-filter src --coverage-html output/coverage --coverage-text --path-coverage --testdox-html output/test.html
vendor/bin/phpunit tests --testdox --coverage-filter src --coverage-html output/coverage --coverage-text --branch-coverage --testdox-html output/test.html

@ -1,7 +1,7 @@
notification:
- type: Ntfy
domain: https://ntfy.jcktrue.dk
topic: backup
topic: testing
log: output.log
rclone:
options:

@ -75,6 +75,7 @@ class CommandBackup extends Command
$message = $render->render('notify', $template);
} catch (\Exception $e) {
$message = $e->getMessage();
$sio->error($message);
}
$notification->send($title, $message);

@ -1,4 +1,5 @@
<?php
<?php declare(strict_types=1);
use PHPUnit\Framework\TestCase;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Tester\CommandTester;
@ -6,7 +7,36 @@ use App\CommandBackup;
class CommandBackupTest extends \PHPUnit\Framework\TestCase
{
public function testInvalidConfig()
protected function setUp(): void
{
mkdir('temp');
mkdir('temp/destination');
exec('rclone test makefiles temp/source 2>&1');
}
protected function tearDown(): void
{
exec('rclone purge temp 2>&1', $output);
}
public function testBadConfig()
{
$applicationd = new Application('backup', "1.1.1");
$applicationd->add(new CommandBackup());
$command = $applicationd->find('backup');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"bad_file"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('[ERROR] Configuration error:File "bad_file" does not exist.', $output);
}
public function testGoodConfig()
{
$applicationd = new Application('backup', "1.1.1");
@ -16,9 +46,41 @@ class CommandBackupTest extends \PHPUnit\Framework\TestCase
$command = $applicationd->find('backup');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"empty"]);
$commandTester->execute(['config'=>"config.example.yml"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('backup', $output);
$this->assertStringContainsString('[OK] Complete ', $output);
}
public function testNoDestinationFolder()
{
exec('rclone purge temp/destination 2>&1', $output);
$applicationd = new Application('backup', "1.1.1");
$applicationd->add(new CommandBackup());
$command = $applicationd->find('backup');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"config.example.yml"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('[OK] Complete ', $output);
}
public function testNoSourceFolder()
{
exec('rclone purge temp/source 2>&1', $output);
$applicationd = new Application('backup', "1.1.1");
$applicationd->add(new CommandBackup());
$command = $applicationd->find('backup');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"config.example.yml"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('[OK] Complete ', $output);
}
}

45
tests/CommandShowTest.php Normal file

@ -0,0 +1,45 @@
<?php
use PHPUnit\Framework\TestCase;
use Symfony\Component\Console\Application;
use Symfony\Component\Console\Tester\CommandTester;
use App\CommandShow;
class CommandShowTest extends \PHPUnit\Framework\TestCase
{
public function testInvalidConfig()
{
$applicationd = new Application('backup', "1.1.1");
$applicationd->add(new CommandShow());
$command = $applicationd->find('show');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"bad_file"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('[ERROR] Configuration error: File "bad_file" does not exist.', $output);
}
public function testGoodConfig()
{
exec('rclone test makefiles temp/source 2>&1');
$applicationd = new Application('backup', "1.1.1");
$applicationd->add(new CommandShow());
$command = $applicationd->find('show');
$commandTester = new CommandTester($command);
$commandTester->execute(['config'=>"config.example.yml"]);
$output = $commandTester->getDisplay();
$this->assertStringContainsString('Example', $output);
$this->assertStringContainsString('temp/source', $output);
$this->assertStringContainsString('temp/destination', $output);
}
}

@ -7,7 +7,10 @@ final class RcloneTest extends TestCase
{
protected function setUp(): void
{
shell_exec('rclone test makefiles temp/source 2>&1');
if(!is_dir('temp')) {
mkdir('temp');
}
exec('rclone test makefiles temp/source 2>&1');
}
protected function tearDown(): void