HelperTest.php 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <?php declare(strict_types=1);
  2. /**
  3. * Created by PhpStorm.
  4. * User: inhere
  5. * Date: 2019-01-31
  6. * Time: 10:08
  7. */
  8. namespace Inhere\ValidateTest;
  9. use Inhere\Validate\Filter\Filters;
  10. use Inhere\Validate\Helper;
  11. use InvalidArgumentException;
  12. use PHPUnit\Framework\TestCase;
  13. /**
  14. * Class HelperTest
  15. *
  16. * @package Inhere\ValidateTest
  17. */
  18. class HelperTest extends TestCase
  19. {
  20. public function testStringCheck(): void
  21. {
  22. $this->assertSame(3, Helper::strPos('string', 'i'));
  23. $this->assertSame(0, Helper::strPos('string', 's'));
  24. $this->assertFalse(Helper::strPos('string', 'o'));
  25. $this->assertSame(5, Helper::strrpos('string', 'g'));
  26. $this->assertFalse(Helper::strrpos('string', 'o'));
  27. }
  28. public function testMimeHelper(): void
  29. {
  30. $this->assertSame('image/jpeg', Helper::getImageMime('jpg'));
  31. $this->assertSame('', Helper::getImageMime('invalid'));
  32. $this->assertSame('jpeg', Helper::getImageExtByMime('image/jpeg'));
  33. $this->assertSame('png', Helper::getImageExtByMime('image/png'));
  34. $this->assertSame('', Helper::getImageExtByMime('invalid'));
  35. if (extension_loaded('fileinfo')) {
  36. $mime = Helper::getMimeType(__DIR__ . '/avatar.jpeg');
  37. $this->assertSame('image/jpeg', $mime);
  38. $this->assertSame('', Helper::getMimeType('invalid'));
  39. }
  40. }
  41. public function testCompareSize(): void
  42. {
  43. $this->assertTrue(Helper::compareSize(5, '>', 3));
  44. // $this->assertFalse(Helper::compareSize(true, '>', false));
  45. $this->assertFalse(Helper::compareSize(5, 'invalid', 3));
  46. }
  47. public function testRuleIsAvailable(): void
  48. {
  49. $this->assertTrue(Helper::ruleIsAvailable('', ''));
  50. $this->assertTrue(Helper::ruleIsAvailable('create', ''));
  51. $this->assertTrue(Helper::ruleIsAvailable('create', 'create'));
  52. $this->assertTrue(Helper::ruleIsAvailable('create', 'create, update'));
  53. $this->assertFalse(Helper::ruleIsAvailable('', 'create'));
  54. $this->assertFalse(Helper::ruleIsAvailable('delete', 'create, update'));
  55. }
  56. public function testGetValueOfArray(): void
  57. {
  58. $data = [
  59. 'user' => [
  60. 'name' => 'inhere',
  61. 'age' => 1,
  62. ]
  63. ];
  64. $this->assertNull(Helper::getValueOfArray($data, 'not-exist'));
  65. $this->assertSame($data, Helper::getValueOfArray($data, null));
  66. }
  67. public function testCall(): void
  68. {
  69. // function
  70. $this->assertSame(34, Helper::call('intval', '34'));
  71. // class:;method
  72. $this->assertSame(34, Helper::call(Filters::class . '::integer', '34'));
  73. $callabled = new class {
  74. public function __invoke($str): int
  75. {
  76. return (int)$str;
  77. }
  78. };
  79. // callabled object
  80. $this->assertSame(34, Helper::call($callabled, '34'));
  81. // invalid
  82. $this->expectException(InvalidArgumentException::class);
  83. Helper::call('oo-invalid');
  84. }
  85. }