<?php

namespace Tests\Unit\SSHCommands\Firewall;

use App\SSHCommands\Firewall\AddRuleCommand;
use Tests\TestCase;

class AddRuleCommandTest extends TestCase
{
    public function test_generate_command()
    {
        $command = new AddRuleCommand('ufw', 'allow', 'tcp', '1080', '0.0.0.0', '0');

        $expected = <<<'EOD'
        if ! sudo ufw allow from 0.0.0.0/0 to any proto tcp port 1080; then
            echo 'VITO_SSH_ERROR' && exit 1
        fi

        if ! sudo ufw reload; then
            echo 'VITO_SSH_ERROR' && exit 1
        fi

        if ! sudo service ufw restart; then
            echo 'VITO_SSH_ERROR' && exit 1
        fi
        EOD;

        $this->assertStringContainsString($expected, $command->content());
    }
}