FilterTest.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Services;
  4. use App\Services\Filter;
  5. use PHPUnit\Framework\TestCase;
  6. final class FilterTest extends TestCase
  7. {
  8. /**
  9. * @covers App\Services\Filter::checkEmailFilter
  10. */
  11. public function testCheckEmailFilterWithValidEmailAndWhitelist(): void
  12. {
  13. $_ENV['mail_filter'] = 1;
  14. $_ENV['mail_filter_list'] = ['example.com'];
  15. $this->assertTrue(Filter::checkEmailFilter('[email protected]'));
  16. }
  17. /**
  18. * @covers App\Services\Filter::checkEmailFilter
  19. */
  20. public function testCheckEmailFilterWithValidEmailAndBlacklist(): void
  21. {
  22. $_ENV['mail_filter'] = 2;
  23. $_ENV['mail_filter_list'] = ['example.com'];
  24. $this->assertFalse(Filter::checkEmailFilter('[email protected]'));
  25. }
  26. /**
  27. * @covers App\Services\Filter::checkEmailFilter
  28. */
  29. public function testCheckEmailFilterWithInvalidEmail(): void
  30. {
  31. $this->assertFalse(Filter::checkEmailFilter('invalid_email'));
  32. }
  33. /**
  34. * @covers App\Services\Filter::checkEmailFilter
  35. */
  36. public function testCheckEmailFilterWithNoMailFilter(): void
  37. {
  38. $_ENV['mail_filter'] = 0;
  39. $this->assertTrue(Filter::checkEmailFilter('[email protected]'));
  40. }
  41. /**
  42. * @covers App\Services\Filter::checkEmailFilter
  43. */
  44. public function testCheckEmailFilterWithValidEmailNotInWhitelist(): void
  45. {
  46. $_ENV['mail_filter'] = 1;
  47. $_ENV['mail_filter_list'] = ['example.com'];
  48. $this->assertFalse(Filter::checkEmailFilter('[email protected]'));
  49. }
  50. /**
  51. * @covers App\Services\Filter::checkEmailFilter
  52. */
  53. public function testCheckEmailFilterWithValidEmailNotInBlacklist(): void
  54. {
  55. $_ENV['mail_filter'] = 2;
  56. $_ENV['mail_filter_list'] = ['example.com'];
  57. $this->assertTrue(Filter::checkEmailFilter('[email protected]'));
  58. }
  59. }