ValidationRequiredIfTest.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace Illuminate\Tests\Validation;
  3. use Illuminate\Validation\Rules\RequiredIf;
  4. use PHPUnit\Framework\TestCase;
  5. class ValidationRequiredIfTest extends TestCase
  6. {
  7. public function testItClousureReturnsFormatsAStringVersionOfTheRule()
  8. {
  9. $rule = new RequiredIf(function () {
  10. return true;
  11. });
  12. $this->assertSame('required', (string) $rule);
  13. $rule = new RequiredIf(function () {
  14. return false;
  15. });
  16. $this->assertSame('', (string) $rule);
  17. $rule = new RequiredIf(true);
  18. $this->assertSame('required', (string) $rule);
  19. $rule = new RequiredIf(false);
  20. $this->assertSame('', (string) $rule);
  21. }
  22. public function testItOnlyCallableAndBooleanAreAcceptableArgumentsOfTheRule()
  23. {
  24. $rule = new RequiredIf(false);
  25. $rule = new RequiredIf(true);
  26. $this->expectException(\InvalidArgumentException::class);
  27. $rule = new RequiredIf('phpinfo');
  28. }
  29. public function testItReturnedRuleIsNotSerializable()
  30. {
  31. $this->expectException(\Exception::class);
  32. $rule = serialize(new RequiredIf(function () {
  33. return true;
  34. }));
  35. }
  36. }