ParametersTest.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?php
  2. namespace App\Tests\Application\Organization;
  3. use App\Enum\Core\TimeZoneEnum;
  4. use App\Enum\Education\PeriodicityEnum;
  5. use App\Tests\Application\OtWebTestCase;
  6. use App\Enum\Organization\SendToBulletinEnum;
  7. use App\Enum\Organization\BulletinCriteriaSortEnum;
  8. use App\Enum\Education\AdvancedEducationNotationTypeEnum;
  9. class ParametersTest extends OtWebTestCase
  10. {
  11. public function testGetParametersCollection(): void
  12. {
  13. $this->loginAs($this->user);
  14. $this->get('/api/parameters/1');
  15. $this->assertResponseStatusCodeSame(200);
  16. }
  17. public function testPutMethode(): void
  18. {
  19. $this->loginAs($this->user);
  20. $this->put('/api/parameters/1', [
  21. 'bulletinCriteriaSort' => BulletinCriteriaSortEnum::ALPHANUM,
  22. 'advancedEducationNotationType' => AdvancedEducationNotationTypeEnum::BY_TEACHER,
  23. 'timezone' => TimeZoneEnum::INDIAN_REUNION,
  24. 'educationPeriodicity' => PeriodicityEnum::HALF,
  25. 'bulletinReceiver' => SendToBulletinEnum::STUDENTS_AND_THEIR_GUARDIANS
  26. ]);
  27. $this->assertResponseStatusCodeSame(200);
  28. }
  29. public function testBadPutBulletinCriteriasort()
  30. {
  31. $this->loginAs($this->user);
  32. $this->put('/api/parameters/1', [
  33. 'bulletinCriteriaSort' => 'BAD_CRITERIA_SORT'
  34. ]);
  35. $this->assertResponseStatusCodeSame(400);
  36. }
  37. public function testBadadvancedEducationNotationType()
  38. {
  39. $this->loginAs($this->user);
  40. $this->put('/api/parameters/1', [
  41. 'bulletinCriteriaSort' => 'bad_advancedEducation'
  42. ]);
  43. $this->assertResponseStatusCodeSame(400);
  44. }
  45. public function testDeleteParameters()
  46. {
  47. $this->loginAs($this->user);
  48. $this->delete('/api/parameters/1');
  49. $this->assertResponseStatusCodeSame(405);
  50. }
  51. public function testBadTimeZone()
  52. {
  53. $this->loginAs($this->user);
  54. $this->put('/api/parameters/1', [
  55. 'timezone' => 'bad_timezone'
  56. ]);
  57. $this->assertResponseStatusCodeSame(400);
  58. }
  59. public function testBadPeridicity()
  60. {
  61. $this->loginAs($this->user);
  62. $this->put('/api/parameters/1', [
  63. 'educationPeriodicity' => 'bad_periodicity'
  64. ]);
  65. $this->assertResponseStatusCodeSame(400);
  66. }
  67. public function testGetParamatersWithBadRoles()
  68. {
  69. $this->loginAsStudent($this->user);
  70. $this->get('/api/parameters/1');
  71. $this->assertResponseStatusCodeSame(403);
  72. }
  73. public function testPutParametersWithBadRoles()
  74. {
  75. $this->loginAsStudent($this->user);
  76. $this->put('/api/parameters/1', [
  77. 'bulletinCriteriaSort' => BulletinCriteriaSortEnum::ALPHANUM,
  78. 'advancedEducationNotationType' => AdvancedEducationNotationTypeEnum::BY_TEACHER,
  79. 'timezone' => TimeZoneEnum::INDIAN_REUNION,
  80. 'educationPeriodicity' => PeriodicityEnum::HALF,
  81. 'bulletinReceiver' => SendToBulletinEnum::STUDENTS_AND_THEIR_GUARDIANS
  82. ]);
  83. $this->assertResponseStatusCodeSame(403);
  84. }
  85. public function testGetCollectionWithintruOfOrganization()
  86. {
  87. $this->loginAsintruOfRoot($this->user);
  88. $this->get('/api/parameters/1');
  89. $this->assertResponseStatusCodeSame(403);
  90. $this->assertJsonContains([
  91. "hydra:description" => "Access Denied."
  92. ]);
  93. }
  94. }