|
|
@@ -2,11 +2,13 @@
|
|
|
namespace App\Test\Service\Organization;
|
|
|
|
|
|
use App\Entity\Access\Access;
|
|
|
+use App\Entity\Booking\Course;
|
|
|
use App\Entity\Education\EducationCurriculum;
|
|
|
use App\Entity\Education\EducationNotationConfig;
|
|
|
use App\Entity\Organization\Organization;
|
|
|
use App\Entity\Organization\Parameters;
|
|
|
use App\Enum\Education\AdvancedEducationNotationTypeEnum;
|
|
|
+use App\Repository\Booking\CourseRepository;
|
|
|
use App\Service\Organization\OnParametersChange;
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
|
|
@@ -14,11 +16,13 @@ class OnParametersChangeTest extends TestCase
|
|
|
{
|
|
|
private Parameters $parameters;
|
|
|
private OnParametersChange $onParametersChange;
|
|
|
+ private CourseRepository $courseRepositoryMock;
|
|
|
|
|
|
public function setUp():void
|
|
|
{
|
|
|
+ $this->courseRepositoryMock = $this->getMockBuilder(CourseRepository::class)->disableOriginalConstructor()->getMock();
|
|
|
$this->parameters = new Parameters();
|
|
|
- $this->onParametersChange = new OnParametersChange();
|
|
|
+ $this->onParametersChange = new OnParametersChange($this->courseRepositoryMock);
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -58,4 +62,31 @@ class OnParametersChangeTest extends TestCase
|
|
|
$this->onParametersChange->onAdvancedEducationNotationType($this->parameters);
|
|
|
$this->assertNull($educationNotationConfig->getTeachers()->first()->getEducationNotationConfig());
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Un cours qui débute le 2/09/2022, si l'année musical passe du 05/09 au 01/09 alors le cours passe de l'année 2021/2022 à 2022/2023
|
|
|
+ * @throws \Exception
|
|
|
+ * @see OnParametersChange::onMusicalDate()
|
|
|
+ */
|
|
|
+ public function testOnMusicalDate(){
|
|
|
+ $organization = new Organization();
|
|
|
+ $this->parameters->setMusicalDate(new \DateTime('2022-09-01'));
|
|
|
+ $organization->setParameters($this->parameters);
|
|
|
+
|
|
|
+
|
|
|
+ $course = new Course();
|
|
|
+ $course->setStartYear(2021);
|
|
|
+ $course->setEndYear(2022);
|
|
|
+ $course->setDatetimeStart(new \DateTime('2022-09-02'));
|
|
|
+
|
|
|
+ $this->courseRepositoryMock
|
|
|
+ ->method('getCoursesToFrom')
|
|
|
+ ->willReturn([$course])
|
|
|
+ ;
|
|
|
+
|
|
|
+ $this->onParametersChange->onMusicalDate($organization, new \DateTime('2022-09-05'));
|
|
|
+
|
|
|
+ $this->assertEquals(2022, $course->getStartYear());
|
|
|
+ $this->assertEquals(2023, $course->getEndYear());
|
|
|
+ }
|
|
|
}
|