ValidationAddFailureTest.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <?php
  2. namespace Illuminate\Tests\Validation;
  3. use Illuminate\Validation\Validator;
  4. use PHPUnit\Framework\TestCase;
  5. class ValidationAddFailureTest extends TestCase
  6. {
  7. /**
  8. * Making Validator using ValidationValidatorTest.
  9. *
  10. * @return \Illuminate\Validation\Validator
  11. */
  12. public function makeValidator()
  13. {
  14. $mainTest = new ValidationValidatorTest;
  15. $trans = $mainTest->getIlluminateArrayTranslator();
  16. return new Validator($trans, ['foo' => ['bar' => ['baz' => '']]], ['foo.bar.baz' => 'sometimes|required']);
  17. }
  18. public function testAddFailureExists()
  19. {
  20. $validator = $this->makeValidator();
  21. $method_name = 'addFailure';
  22. $this->assertTrue(method_exists($validator, $method_name));
  23. $this->assertIsCallable([$validator, $method_name]);
  24. }
  25. public function testAddFailureIsFunctional()
  26. {
  27. $attribute = 'Eugene';
  28. $validator = $this->makeValidator();
  29. $validator->addFailure($attribute, 'not_in');
  30. $messages = json_decode($validator->messages());
  31. $this->assertSame($messages->{'foo.bar.baz'}[0], 'validation.required', 'initial data in messages is lost');
  32. $this->assertSame($messages->{$attribute}[0], 'validation.not_in', 'new data in messages was not added');
  33. }
  34. }