From 8332bd02df2c432094f44d686d56fca303b7ad5d Mon Sep 17 00:00:00 2001 From: Akellymourab Date: Fri, 31 Jan 2025 12:08:19 -0300 Subject: [PATCH] Adds unit tests for sealEntity entity. --- tests/Unit/Entity/SealEntityTest.php | 83 +++++++++++++++++----------- tests/Unit/Entity/SealTest.php | 56 +++++++++++++++++++ 2 files changed, 106 insertions(+), 33 deletions(-) create mode 100644 tests/Unit/Entity/SealTest.php diff --git a/tests/Unit/Entity/SealEntityTest.php b/tests/Unit/Entity/SealEntityTest.php index 272e6d02..f8551917 100644 --- a/tests/Unit/Entity/SealEntityTest.php +++ b/tests/Unit/Entity/SealEntityTest.php @@ -5,52 +5,69 @@ namespace App\Tests\Unit\Entity; use App\Entity\Agent; -use App\Entity\Seal; -use App\Tests\AbstractWebTestCase; -use DateTime; +use App\Entity\SealEntity; +use App\Helper\DateFormatHelper; use DateTimeImmutable; +use PHPUnit\Framework\TestCase; use Symfony\Component\Uid\Uuid; -class SealEntityTest extends AbstractWebTestCase +class SealEntityTest extends TestCase { - public function testGettersAndSettersFromSealEntityShouldBeSuccessful(): void + public function testGettersAndSetters(): void { - $seal = new Seal(); + $seal = new SealEntity(); $id = Uuid::v4(); - $name = 'Seal XXX'; - $description = 'This is description of a test seal'; - $agent = new Agent(); - $agentId = Uuid::v4(); - $expirationDate = new DateTimeImmutable('+6 month'); + $entityId = Uuid::v4(); + $entityType = 1; + $authorizedBy = 1; + $createdBy = $this->createMock(Agent::class); $createdAt = new DateTimeImmutable(); - $updatedAt = new DateTime(); - $deletedAt = new DateTime(); + + $createdBy->method('getId')->willReturn(Uuid::v4()); $seal->setId($id); - $seal->setName($name); - $seal->setDescription($description); - $seal->setActive(true); - $agent->setId($agentId); - $seal->setCreatedBy($agent); - $seal->setExpirationDate($expirationDate); + $seal->setEntityId($entityId); + $seal->setEntity($entityType); + $seal->setAuthorizedBy($authorizedBy); + $seal->setCreatedBy($createdBy); $seal->setCreatedAt($createdAt); - $seal->setUpdatedAt($updatedAt); - $seal->setDeletedAt($deletedAt); - $this->assertEquals($createdAt, $seal->getCreatedAt()); - $this->assertInstanceOf(DateTimeImmutable::class, $seal->getCreatedAt()); + $this->assertSame($id, $seal->getId()); + $this->assertSame($entityId, $seal->getEntityId()); + $this->assertSame($entityType, $seal->getEntity()); + $this->assertSame($authorizedBy, $seal->getAuthorizedBy()); + $this->assertSame($createdBy, $seal->getCreatedBy()); + $this->assertSame($createdAt, $seal->getCreatedAt()); + } + + public function testToArray(): void + { + $seal = new SealEntity(); + + $id = Uuid::v4(); + $entityId = Uuid::v4(); + $authorizedBy = 1; + $createdBy = $this->createMock(Agent::class); + $createdAt = new DateTimeImmutable(); + + $createdByUuid = Uuid::v4(); + $createdBy->method('getId')->willReturn($createdByUuid); + + $seal->setId($id); + $seal->setEntityId($entityId); + $seal->setAuthorizedBy($authorizedBy); + $seal->setCreatedBy($createdBy); + $seal->setCreatedAt($createdAt); - $this->assertEquals([ + $expectedArray = [ 'id' => $id->toRfc4122(), - 'name' => $name, - 'description' => $description, - 'createdBy' => $agentId->toRfc4122(), - 'expirationDate' => $expirationDate->format('Y-m-d H:i:s'), - 'createdAt' => $createdAt->format('Y-m-d H:i:s'), - 'updatedAt' => $updatedAt->format('Y-m-d H:i:s'), - 'deletedAt' => $deletedAt->format('Y-m-d H:i:s'), - 'active' => true, - ], $seal->toArray()); + 'entityId' => $entityId->toRfc4122(), + 'authorizedBy' => $authorizedBy, + 'createdBy' => $createdByUuid->toRfc4122(), + 'createdAt' => $createdAt->format(DateFormatHelper::DEFAULT_FORMAT), + ]; + + $this->assertSame($expectedArray, $seal->toArray()); } } diff --git a/tests/Unit/Entity/SealTest.php b/tests/Unit/Entity/SealTest.php new file mode 100644 index 00000000..e0674e9a --- /dev/null +++ b/tests/Unit/Entity/SealTest.php @@ -0,0 +1,56 @@ +setId($id); + $seal->setName($name); + $seal->setDescription($description); + $seal->setActive(true); + $agent->setId($agentId); + $seal->setCreatedBy($agent); + $seal->setExpirationDate($expirationDate); + $seal->setCreatedAt($createdAt); + $seal->setUpdatedAt($updatedAt); + $seal->setDeletedAt($deletedAt); + + $this->assertEquals($createdAt, $seal->getCreatedAt()); + $this->assertInstanceOf(DateTimeImmutable::class, $seal->getCreatedAt()); + + $this->assertEquals([ + 'id' => $id->toRfc4122(), + 'name' => $name, + 'description' => $description, + 'createdBy' => $agentId->toRfc4122(), + 'expirationDate' => $expirationDate->format('Y-m-d H:i:s'), + 'createdAt' => $createdAt->format('Y-m-d H:i:s'), + 'updatedAt' => $updatedAt->format('Y-m-d H:i:s'), + 'deletedAt' => $deletedAt->format('Y-m-d H:i:s'), + 'active' => true, + ], $seal->toArray()); + } +}