RequestValidationTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace Illuminate\Tests\Integration\Validation;
  3. use Illuminate\Http\Request;
  4. use Illuminate\Validation\ValidationException;
  5. use Orchestra\Testbench\TestCase;
  6. class RequestValidationTest extends TestCase
  7. {
  8. public function testValidateMacro()
  9. {
  10. $request = Request::create('/', 'GET', ['name' => 'Taylor']);
  11. $validated = $request->validate(['name' => 'string']);
  12. $this->assertSame(['name' => 'Taylor'], $validated);
  13. }
  14. public function testValidateMacroWhenItFails()
  15. {
  16. $this->expectException(ValidationException::class);
  17. $request = Request::create('/', 'GET', ['name' => null]);
  18. $request->validate(['name' => 'string']);
  19. }
  20. public function testValidateWithBagMacro()
  21. {
  22. $request = Request::create('/', 'GET', ['name' => 'Taylor']);
  23. $validated = $request->validateWithBag('some_bag', ['name' => 'string']);
  24. $this->assertSame(['name' => 'Taylor'], $validated);
  25. }
  26. public function testValidateWithBagMacroWhenItFails()
  27. {
  28. $request = Request::create('/', 'GET', ['name' => null]);
  29. try {
  30. $request->validateWithBag('some_bag', ['name' => 'string']);
  31. } catch (ValidationException $validationException) {
  32. $this->assertSame('some_bag', $validationException->errorBag);
  33. }
  34. }
  35. }