fix notification chanels and more tests (#108)

* fix notification chanels and more tests

* fix code style
This commit is contained in:
Saeed Vaziry
2024-02-16 21:10:17 +01:00
committed by GitHub
parent b75df8e1c5
commit f70963d6bb
103 changed files with 484 additions and 112 deletions

View File

@ -0,0 +1,20 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\BackupDatabaseCommand;
use Tests\TestCase;
class BackupDatabaseCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new BackupDatabaseCommand('mysql', 'test', 'test');
$this->assertStringContainsString('sudo DEBIAN_FRONTEND=noninteractive mysqldump -u root test > test.sql;', $command->content());
$this->assertStringContainsString('DEBIAN_FRONTEND=noninteractive zip test.zip test.sql;', $command->content());
$this->assertStringContainsString('rm test.sql;', $command->content());
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\CreateCommand;
use Tests\TestCase;
class CreateCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new CreateCommand('mysql', 'test');
$this->assertStringContainsString('sudo mysql -e "CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8 COLLATE utf8_general_ci";', $command->content());
$this->assertStringContainsString('echo "Command executed"', $command->content());
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\CreateUserCommand;
use Tests\TestCase;
class CreateUserCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new CreateUserCommand('mysql', 'user', 'password', '%');
$this->assertStringContainsString('sudo mysql -e "CREATE USER IF NOT EXISTS \'user\'@\'%\' IDENTIFIED BY \'password\'";', $command->content());
$this->assertStringContainsString('sudo mysql -e "FLUSH PRIVILEGES";', $command->content());
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\DeleteCommand;
use Tests\TestCase;
class DeleteCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new DeleteCommand('mysql', 'test');
$this->assertStringContainsString('sudo mysql -e "DROP DATABASE IF EXISTS test";', $command->content());
}
}

View File

@ -0,0 +1,18 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\DeleteUserCommand;
use Tests\TestCase;
class DeleteUserCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new DeleteUserCommand('mysql', 'user', '%');
$this->assertStringContainsString('sudo mysql -e "DROP USER IF EXISTS \'user\'@\'%\'";', $command->content());
$this->assertStringContainsString('sudo mysql -e "FLUSH PRIVILEGES";', $command->content());
}
}

View File

@ -0,0 +1,31 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\InstallMariadbCommand;
use Tests\TestCase;
class InstallMariadbCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new InstallMariadbCommand();
$expected = <<<EOD
wget https://downloads.mariadb.com/MariaDB/mariadb_repo_setup
chmod +x mariadb_repo_setup
sudo DEBIAN_FRONTEND=noninteractive ./mariadb_repo_setup \
--mariadb-server-version="mariadb-10.3"
sudo DEBIAN_FRONTEND=noninteractive apt update
sudo DEBIAN_FRONTEND=noninteractive apt install mariadb-server mariadb-backup -y
sudo service mysql start
EOD;
$this->assertStringContainsString($expected, $command->content());
}
}

View File

@ -0,0 +1,61 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\InstallMysqlCommand;
use Tests\TestCase;
class InstallMysqlCommandTest extends TestCase
{
public function test_generate_command_mysql8()
{
$command = new InstallMysqlCommand('8.0');
$expected = <<<'EOD'
wget -c https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb
sudo DEBIAN_FRONTEND=noninteractive dpkg -i mysql-apt-config_0.8.22-1_all.deb
sudo DEBIAN_FRONTEND=noninteractive apt update
sudo DEBIAN_FRONTEND=noninteractive apt install mysql-server -y
sudo service mysql enable
sudo service mysql start
if ! sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! sudo mysql -e "FLUSH PRIVILEGES"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
EOD;
$this->assertStringContainsString($expected, $command->content());
}
public function test_generate_command_mysql5()
{
$command = new InstallMysqlCommand('5.7');
$expected = <<<'EOD'
sudo DEBIAN_FRONTEND=noninteractive apt install mysql-server -y
sudo service mysql enable
sudo service mysql start
if ! sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH auth_socket;"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! sudo mysql -e "FLUSH PRIVILEGES"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
EOD;
$this->assertStringContainsString($expected, $command->content());
}
}

View File

@ -0,0 +1,28 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\LinkCommand;
use Tests\TestCase;
class LinkCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new LinkCommand('mysql', 'user', '%', 'test');
$expected = <<<'EOD'
if ! sudo mysql -e "GRANT ALL PRIVILEGES ON test.* TO 'user'@'%'"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
if ! sudo mysql -e "FLUSH PRIVILEGES"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
echo "Linking to test finished"
EOD;
$this->assertStringContainsString($expected, $command->content());
}
}

View File

@ -0,0 +1,24 @@
<?php
namespace Tests\Unit\SSHCommands\Database;
use App\SSHCommands\Database\UnlinkCommand;
use Tests\TestCase;
class UnlinkCommandTest extends TestCase
{
public function test_generate_command()
{
$command = new UnlinkCommand('mysql', 'user', '%');
$expected = <<<'EOD'
if ! sudo mysql -e "REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'user'@'%'"; then
echo 'VITO_SSH_ERROR' && exit 1
fi
echo "Command executed"
EOD;
$this->assertStringContainsString($expected, $command->content());
}
}