UtilsTest.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. namespace App\Test\Service\Organization;
  3. use App\Entity\Organization\Organization;
  4. use App\Entity\Organization\Parameters;
  5. use App\Entity\Organization\Settings;
  6. use App\Enum\Organization\SettingsProductEnum;
  7. use App\Service\Organization\Utils;
  8. use App\Service\Organization\Utils as OrganizationUtils;
  9. use PHPUnit\Framework\TestCase;
  10. class UtilsTest extends TestCase
  11. {
  12. private OrganizationUtils $organizationUtils;
  13. private Organization $organization;
  14. private Organization $federation;
  15. public function setUp():void
  16. {
  17. $settings = new Settings();
  18. $settings->setProduct(SettingsProductEnum::ARTIST_PREMIUM());
  19. $this->organization = new Organization();
  20. $this->organization->setSettings($settings);
  21. $settings = new Settings();
  22. $settings->setProduct(SettingsProductEnum::MANAGER());
  23. $this->federation = new Organization();
  24. $this->federation->setSettings($settings);
  25. $this->organizationUtils = new OrganizationUtils();
  26. }
  27. /**
  28. * @see OrganizationUtils::isStructure()
  29. */
  30. public function testIsStructureTest(){
  31. $this->assertTrue($this->organizationUtils->isStructure($this->organization));
  32. }
  33. /**
  34. * @see OrganizationUtils::isStructure()
  35. */
  36. public function testIsNotStructureTest(){
  37. $this->assertFalse($this->organizationUtils->isStructure($this->federation));
  38. }
  39. /**
  40. * @see OrganizationUtils::isManager()
  41. */
  42. public function testIsManagerTest(){
  43. $this->assertTrue($this->organizationUtils->isManager($this->federation));
  44. }
  45. /**
  46. * @see OrganizationUtils::isManager()
  47. */
  48. public function testIsNotManagerTest(){
  49. $this->assertFalse($this->organizationUtils->isManager($this->organization));
  50. }
  51. /**
  52. * @see OrganizationUtils::isOrganizationIs2ios()
  53. */
  54. public function testIsOrganizationIs2ios(){
  55. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  56. $organizationMock
  57. ->method('getId')
  58. ->willReturn(32366);
  59. $this->assertTrue($this->organizationUtils->isOrganizationIs2ios($organizationMock));
  60. }
  61. /**
  62. * @see OrganizationUtils::isOrganizationIs2ios()
  63. */
  64. public function testIsNotOrganizationIs2ios(){
  65. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  66. $organizationMock
  67. ->method('getId')
  68. ->willReturn(1);
  69. $this->assertFalse($this->organizationUtils->isOrganizationIs2ios($organizationMock));
  70. }
  71. /**
  72. * @see OrganizationUtils::isOrganizationIsCMF()
  73. */
  74. public function testIsOrganizationIsCMF(){
  75. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  76. $organizationMock
  77. ->method('getId')
  78. ->willReturn(12097);
  79. $this->assertTrue($this->organizationUtils->isOrganizationIsCMF($organizationMock));
  80. }
  81. /**
  82. * @see OrganizationUtils::getOrganizationCurrentActivityYear()
  83. */
  84. public function testGetOrganizationCurrentActivityYear(){
  85. $parameters = new Parameters();
  86. $parameters->setMusicalDate(new \DateTime('2020-09-01'));
  87. $this->organization->setParameters($parameters);
  88. $today = new \DateTime('now');
  89. if($today->format('m') < 9)
  90. $this->assertEquals( ($today->format('Y') - 1), $this->organizationUtils->getOrganizationCurrentActivityYear($this->organization));
  91. else
  92. $this->assertEquals($today->format('Y'), $this->organizationUtils->getOrganizationCurrentActivityYear($this->organization));
  93. }
  94. /**
  95. * @see OrganizationUtils::getActivityPeriodsSwitchYear()
  96. */
  97. public function testGetActivityPeriodsSwitchYear(){
  98. $parameters = new Parameters();
  99. $parameters->setMusicalDate(new \DateTime('2020-09-05'));
  100. $this->organization->setParameters($parameters);
  101. $organizationUtils = new \App\Service\Organization\Utils();
  102. $periods = $organizationUtils->getActivityPeriodsSwitchYear($this->organization, 2022);
  103. $this->assertEquals('2022-09-05', $periods['dateStart']);
  104. $this->assertEquals('2023-09-04', $periods['dateEnd']);
  105. }
  106. /**
  107. * @see OrganizationUtils::getActivityYearSwitchDate()
  108. */
  109. public function testgetActivityYearSwitchDate(){
  110. $parameters = new Parameters();
  111. $parameters->setMusicalDate(new \DateTime('2020-09-05'));
  112. $this->organization->setParameters($parameters);
  113. $this->assertEquals(2022, $this->organizationUtils->getActivityYearSwitchDate($this->organization, new \DateTime('2022-09-10')));
  114. $this->assertEquals(2021, $this->organizationUtils->getActivityYearSwitchDate($this->organization, new \DateTime('2022-09-02')));
  115. }
  116. }