Squelette Symfony, entités Server et Action

This commit is contained in:
Yasser Boulayoune 2026-04-07 10:12:00 +02:00
commit 52ecb4204c
46 changed files with 4308 additions and 0 deletions

55
tests/Unit/ServerTest.php Normal file
View file

@ -0,0 +1,55 @@
<?php
namespace App\Tests\Unit;
use App\Entity\Server;
use App\Entity\User;
use PHPUnit\Framework\TestCase;
class ServerTest extends TestCase
{
public function testServerDefaultStatus(): void
{
$server = new Server();
$this->assertEquals('unknown', $server->getLastStatus());
}
public function testServerDefaultPort(): void
{
$server = new Server();
$this->assertEquals(22, $server->getSshPort());
}
public function testServerSettersAndGetters(): void
{
$server = new Server();
$server->setName('Test Server');
$server->setIpAddress('192.168.1.1');
$server->setSshPort(2222);
$server->setSshUser('admin');
$server->setSshPassword('pass123');
$server->setLastStatus('online');
$this->assertEquals('Test Server', $server->getName());
$this->assertEquals('192.168.1.1', $server->getIpAddress());
$this->assertEquals(2222, $server->getSshPort());
$this->assertEquals('admin', $server->getSshUser());
$this->assertEquals('online', $server->getLastStatus());
}
public function testServerOwnerRelation(): void
{
$server = new Server();
$user = new User();
$user->setEmail('owner@test.com')->setPseudo('Owner');
$server->setOwner($user);
$this->assertSame($user, $server->getOwner());
}
public function testServerCreatedAtIsSetOnConstruct(): void
{
$server = new Server();
$this->assertInstanceOf(\DateTimeImmutable::class, $server->getCreatedAt());
}
}

51
tests/Unit/UserTest.php Normal file
View file

@ -0,0 +1,51 @@
<?php
namespace App\Tests\Unit;
use App\Entity\User;
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
public function testUserAlwaysHasRoleUser(): void
{
$user = new User();
$user->setRoles([]);
$this->assertContains('ROLE_USER', $user->getRoles());
}
public function testAdminDetection(): void
{
$user = new User();
$user->setRoles(['ROLE_ADMIN']);
$this->assertTrue($user->isAdmin());
$this->assertTrue($user->isOperator());
}
public function testOperatorDetection(): void
{
$user = new User();
$user->setRoles(['ROLE_OPERATOR']);
$this->assertTrue($user->isOperator());
$this->assertFalse($user->isAdmin());
}
public function testUserIsActiveByDefault(): void
{
$user = new User();
$this->assertTrue($user->isActive());
}
public function testUserIdentifierIsEmail(): void
{
$user = new User();
$user->setEmail('test@example.com');
$this->assertEquals('test@example.com', $user->getUserIdentifier());
}
public function testCreatedAtSetOnConstruct(): void
{
$user = new User();
$this->assertInstanceOf(\DateTimeImmutable::class, $user->getCreatedAt());
}
}

13
tests/bootstrap.php Normal file
View file

@ -0,0 +1,13 @@
<?php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (method_exists(Dotenv::class, 'bootEnv')) {
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
}
if ($_SERVER['APP_DEBUG']) {
umask(0000);
}