UtilsTest.php 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236
  1. <?php
  2. namespace App\Tests\Service\Cotisation;
  3. use App\Entity\Organization\Organization;
  4. use App\Repository\Network\NetworkOrganizationRepository;
  5. use App\Service\Cotisation\Utils;
  6. use App\Service\Organization\Utils as OrganizationUtils;
  7. use PHPUnit\Framework\TestCase;
  8. use \App\Service\Network\Utils as NetworkUtils;
  9. class UtilsTest extends TestCase
  10. {
  11. private NetworkOrganizationRepository $networkOrganizationRepositoryMock;
  12. private NetworkUtils $networkUtilsMock;
  13. private OrganizationUtils $organizationUtilsMock;
  14. public function setUp(): void
  15. {
  16. $this->networkOrganizationRepositoryMock =
  17. $this
  18. ->getMockBuilder(NetworkOrganizationRepository::class)
  19. ->disableOriginalConstructor()
  20. ->getMock();
  21. $this->networkUtilsMock =
  22. $this
  23. ->getMockBuilder(NetworkUtils::class)
  24. ->disableOriginalConstructor()
  25. ->getMock();
  26. $this->organizationUtilsMock =
  27. $this
  28. ->getMockBuilder(OrganizationUtils::class)
  29. ->getMock();
  30. }
  31. /**
  32. * @see Utils::isLastParentAndCMF()
  33. */
  34. public function testIsLastParentAndCMF(): void
  35. {
  36. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  37. $organizationMock
  38. ->method('getId')
  39. ->willReturn(1);
  40. $this->networkOrganizationRepositoryMock
  41. ->expects($this->once())
  42. ->method('isLastParent')
  43. ->with($organizationMock)
  44. ->willReturn(true);
  45. $this->networkUtilsMock
  46. ->expects($this->once())
  47. ->method('isCMF')
  48. ->with($organizationMock)
  49. ->willReturn(true);
  50. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  51. $this->assertTrue($utils->isLastParentAndCMF($organizationMock));
  52. }
  53. /**
  54. * @see Utils::isLastParentAndCMF()
  55. */
  56. public function testIsNotLastParentAndCMF(): void
  57. {
  58. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  59. $organizationMock
  60. ->method('getId')
  61. ->willReturn(1);
  62. $this->networkOrganizationRepositoryMock
  63. ->expects($this->once())
  64. ->method('isLastParent')
  65. ->with($organizationMock)
  66. ->willReturn(false);
  67. $this->networkUtilsMock
  68. ->expects($this->never())
  69. ->method('isCMF');
  70. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  71. $this->assertFalse($utils->isLastParentAndCMF($organizationMock));
  72. }
  73. /**
  74. * @see Utils::isStructureAndCMF()
  75. */
  76. public function testIsStructureAndCMF(): void
  77. {
  78. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  79. $this->organizationUtilsMock
  80. ->expects($this->once())
  81. ->method('isStructure')
  82. ->with($organizationMock)
  83. ->willReturn(true);
  84. $this->networkUtilsMock
  85. ->expects($this->once())
  86. ->method('isCMF')
  87. ->with($organizationMock)
  88. ->willReturn(true);
  89. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  90. $this->assertTrue($utils->isStructureAndCMF($organizationMock));
  91. }
  92. /**
  93. * @see Utils::isStructureAndCMF()
  94. */
  95. public function testIsNotStructureAndCMF(): void
  96. {
  97. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  98. $this->organizationUtilsMock
  99. ->expects($this->once())
  100. ->method('isStructure')
  101. ->with($organizationMock)
  102. ->willReturn(false);
  103. $this->networkUtilsMock
  104. ->expects($this->never())
  105. ->method('isCMF');
  106. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  107. $this->assertFalse($utils->isStructureAndCMF($organizationMock));
  108. }
  109. /**
  110. * @see Utils::isManagerAndCMF()
  111. */
  112. public function testIsManagerAndCMF(): void
  113. {
  114. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  115. $this->organizationUtilsMock
  116. ->expects($this->once())
  117. ->method('isManager')
  118. ->with($organizationMock)
  119. ->willReturn(true);
  120. $this->networkUtilsMock
  121. ->expects($this->once())
  122. ->method('isCMF')
  123. ->with($organizationMock)
  124. ->willReturn(true);
  125. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  126. $this->assertTrue($utils->isManagerAndCMF($organizationMock));
  127. }
  128. /**
  129. * @see Utils::isManagerAndCMF()
  130. */
  131. public function testIsNotManagerAndCMF(): void
  132. {
  133. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  134. $this->organizationUtilsMock
  135. ->expects($this->once())
  136. ->method('isManager')
  137. ->with($organizationMock)
  138. ->willReturn(false);
  139. $this->networkUtilsMock
  140. ->expects($this->never())
  141. ->method('isCMF');
  142. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  143. $this->assertFalse($utils->isManagerAndCMF($organizationMock));
  144. }
  145. /**
  146. * @see Utils::isManagerAndNotLastParentAndCMF()
  147. */
  148. public function testIsManagerAndNotLastParentAndCMF(): void
  149. {
  150. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  151. $organizationMock
  152. ->method('getId')
  153. ->willReturn(1);
  154. $this->organizationUtilsMock
  155. ->expects($this->once())
  156. ->method('isManager')
  157. ->with($organizationMock)
  158. ->willReturn(true);
  159. $this->networkOrganizationRepositoryMock
  160. ->expects($this->once())
  161. ->method('isLastParent')
  162. ->with($organizationMock)
  163. ->willReturn(false);
  164. $this->networkUtilsMock
  165. ->expects($this->never())
  166. ->method('isCMF');
  167. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  168. $this->assertTrue($utils->isManagerAndNotLastParentAndCMF($organizationMock));
  169. }
  170. /**
  171. * @see Utils::isManagerAndLastParentAndCMF()
  172. */
  173. public function testIsManagerAndLastParentAndCMF(): void
  174. {
  175. $organizationMock = $this->getMockBuilder(Organization::class)->getMock();
  176. $organizationMock
  177. ->method('getId')
  178. ->willReturn(1);
  179. $this->organizationUtilsMock
  180. ->expects($this->once())
  181. ->method('isManager')
  182. ->with($organizationMock)
  183. ->willReturn(true);
  184. $this->networkOrganizationRepositoryMock
  185. ->expects($this->once())
  186. ->method('isLastParent')
  187. ->with($organizationMock)
  188. ->willReturn(true);
  189. $this->networkUtilsMock
  190. ->expects($this->once())
  191. ->method('isCMF')
  192. ->willReturn(true);
  193. $utils = new Utils($this->networkUtilsMock, $this->organizationUtilsMock, $this->networkOrganizationRepositoryMock);
  194. $this->assertTrue($utils->isManagerAndLastParentAndCMF($organizationMock));
  195. }
  196. }