CountHelperTest.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. namespace Tests\Unit\Helpers;
  3. use App\Helpers\CountHelper;
  4. use PHPUnit\Framework\TestCase;
  5. class CountHelperTest extends TestCase
  6. {
  7. public function test_human_count_returns_one_form_for_1(): void
  8. {
  9. $result = CountHelper::humanCount(1, 'год', 'года', 'лет');
  10. $this->assertEquals('1 год', $result);
  11. }
  12. public function test_human_count_returns_two_form_for_2_to_4(): void
  13. {
  14. $this->assertEquals('2 года', CountHelper::humanCount(2, 'год', 'года', 'лет'));
  15. $this->assertEquals('3 года', CountHelper::humanCount(3, 'год', 'года', 'лет'));
  16. $this->assertEquals('4 года', CountHelper::humanCount(4, 'год', 'года', 'лет'));
  17. }
  18. public function test_human_count_returns_many_form_for_0_and_5_plus(): void
  19. {
  20. $this->assertEquals('0 лет', CountHelper::humanCount(0, 'год', 'года', 'лет'));
  21. $this->assertEquals('5 лет', CountHelper::humanCount(5, 'год', 'года', 'лет'));
  22. $this->assertEquals('10 лет', CountHelper::humanCount(10, 'год', 'года', 'лет'));
  23. $this->assertEquals('21 лет', CountHelper::humanCount(21, 'год', 'года', 'лет'));
  24. $this->assertEquals('100 лет', CountHelper::humanCount(100, 'год', 'года', 'лет'));
  25. }
  26. public function test_human_count_works_with_different_words(): void
  27. {
  28. // Days
  29. $this->assertEquals('1 день', CountHelper::humanCount(1, 'день', 'дня', 'дней'));
  30. $this->assertEquals('2 дня', CountHelper::humanCount(2, 'день', 'дня', 'дней'));
  31. $this->assertEquals('5 дней', CountHelper::humanCount(5, 'день', 'дня', 'дней'));
  32. // Months
  33. $this->assertEquals('1 месяц', CountHelper::humanCount(1, 'месяц', 'месяца', 'месяцев'));
  34. $this->assertEquals('3 месяца', CountHelper::humanCount(3, 'месяц', 'месяца', 'месяцев'));
  35. $this->assertEquals('12 месяцев', CountHelper::humanCount(12, 'месяц', 'месяца', 'месяцев'));
  36. // Items
  37. $this->assertEquals('1 штука', CountHelper::humanCount(1, 'штука', 'штуки', 'штук'));
  38. $this->assertEquals('4 штуки', CountHelper::humanCount(4, 'штука', 'штуки', 'штук'));
  39. $this->assertEquals('7 штук', CountHelper::humanCount(7, 'штука', 'штуки', 'штук'));
  40. }
  41. }