From 024e9f93bd231402c022dae4e0f8888c7a7207c8 Mon Sep 17 00:00:00 2001 From: cmorenov1402 Date: Mon, 24 Mar 2025 09:55:13 +0100 Subject: [PATCH] Add optimum deadline is set correctly test --- tests/Entity/ProjectCalendarTest.php | 34 ++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/tests/Entity/ProjectCalendarTest.php b/tests/Entity/ProjectCalendarTest.php index aaf05da..3d5150b 100644 --- a/tests/Entity/ProjectCalendarTest.php +++ b/tests/Entity/ProjectCalendarTest.php @@ -5,6 +5,7 @@ namespace App\Tests\Entity; use ApiPlatform\Symfony\Bundle\Test\ApiTestCase; use App\Entity\Project\Category; use App\Entity\Project\Project; +use App\Entity\Project\ProjectCalendar; use App\Entity\Project\ProjectDeadline; use App\Entity\Project\ProjectStatus; use App\Entity\Project\ProjectTerritory; @@ -84,4 +85,37 @@ class ProjectCalendarTest extends ApiTestCase $this->assertGreaterThan($releaseDate, $minimumDeadline); $this->assertEquals($releaseDate->modify('+40 days'), $minimumDeadline); } + + public function testOptimumDeadlineIsSetCorrectly(): void + { + $owner = new User(); + $owner->setHandle('test_optimum_deadline_user'); + $owner->setEmail('testoptimumdeadlineuser@example.com'); + $owner->setPassword('projectapitestoptimumdeadlineuserpassword'); + + $project = new Project(); + $project->setTitle('Test Project'); + $project->setSubtitle('Test Project Subtitle'); + $project->setDeadline(ProjectDeadline::Optimum); + $project->setCategory(Category::LibreSoftware); + $project->setDescription('Test Project Description'); + $project->setTerritory(new ProjectTerritory('ES')); + $project->setOwner($owner); + $project->setStatus(ProjectStatus::InReview); + $project->setCalendar(new ProjectCalendar()); + + $this->entityManager->persist($owner); + $this->entityManager->persist($project); + $this->entityManager->flush(); + + $project->setStatus(ProjectStatus::InCampaign); + $this->entityManager->flush(); + + $minimumDeadline = $project->getCalendar()->minimum; + $optimumDeadline = $project->getCalendar()->optimum; + + $this->assertNotNull($optimumDeadline); + $this->assertGreaterThan($minimumDeadline, $optimumDeadline); + $this->assertEquals($minimumDeadline->modify('+40 days'), $optimumDeadline); + } }