OnParametersChangeTest.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Test\Service\Organization;
  3. use App\Entity\Access\Access;
  4. use App\Entity\Education\EducationCurriculum;
  5. use App\Entity\Education\EducationNotationConfig;
  6. use App\Entity\Organization\Organization;
  7. use App\Entity\Organization\Parameters;
  8. use App\Enum\Education\AdvancedEducationNotationTypeEnum;
  9. use App\Service\Organization\OnParametersChange;
  10. use PHPUnit\Framework\TestCase;
  11. class OnParametersChangeTest extends TestCase
  12. {
  13. private Parameters $parameters;
  14. private OnParametersChange $onParametersChange;
  15. public function setUp():void
  16. {
  17. $this->parameters = new Parameters();
  18. $this->onParametersChange = new OnParametersChange();
  19. }
  20. /**
  21. * @see OnParametersChange::onAdvancedEducationNotationType()
  22. */
  23. public function testOnAdvancedEducationNotationTypeByTeachers(){
  24. $educationNotationConfig = new EducationNotationConfig();
  25. $educationCurriculum = new EducationCurriculum();
  26. $educationNotationConfig->addEducationCurriculum($educationCurriculum);
  27. $organization = new Organization();
  28. $organization->addEducationNotationConfig($educationNotationConfig);
  29. $this->parameters->setAdvancedEducationNotationType(AdvancedEducationNotationTypeEnum::BY_TEACHER()->getValue());
  30. $this->parameters->setOrganization($organization);
  31. $this->assertCount(1, $educationNotationConfig->getEducationCurriculums());
  32. $this->onParametersChange->onAdvancedEducationNotationType($this->parameters);
  33. $this->assertNull($educationNotationConfig->getEducationCurriculums()->first()->getEducationNotationConfig());
  34. }
  35. /**
  36. * @see OnParametersChange::onAdvancedEducationNotationType()
  37. */
  38. public function testOnAdvancedEducationNotationTypeByEducation(){
  39. $educationNotationConfig = new EducationNotationConfig();
  40. $teacher = new Access();
  41. $educationNotationConfig->addTeacher($teacher);
  42. $organization = new Organization();
  43. $organization->addEducationNotationConfig($educationNotationConfig);
  44. $this->parameters->setAdvancedEducationNotationType(AdvancedEducationNotationTypeEnum::BY_EDUCATION()->getValue());
  45. $this->parameters->setOrganization($organization);
  46. $this->assertCount(1, $educationNotationConfig->getTeachers());
  47. $this->onParametersChange->onAdvancedEducationNotationType($this->parameters);
  48. $this->assertNull($educationNotationConfig->getTeachers()->first()->getEducationNotationConfig());
  49. }
  50. }