ValidationDimensionsRuleTest.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace Illuminate\Tests\Validation;
  3. use Illuminate\Validation\Rule;
  4. use Illuminate\Validation\Rules\Dimensions;
  5. use PHPUnit\Framework\TestCase;
  6. class ValidationDimensionsRuleTest extends TestCase
  7. {
  8. public function testItCorrectlyFormatsAStringVersionOfTheRule()
  9. {
  10. $rule = new Dimensions(['min_width' => 100, 'min_height' => 100]);
  11. $this->assertSame('dimensions:min_width=100,min_height=100', (string) $rule);
  12. $rule = Rule::dimensions()->width(200)->height(100);
  13. $this->assertSame('dimensions:width=200,height=100', (string) $rule);
  14. $rule = Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2);
  15. $this->assertSame('dimensions:max_width=1000,max_height=500,ratio=1.5', (string) $rule);
  16. $rule = new Dimensions(['ratio' => '2/3']);
  17. $this->assertSame('dimensions:ratio=2/3', (string) $rule);
  18. $rule = Rule::dimensions()->minWidth(300)->minHeight(400);
  19. $this->assertSame('dimensions:min_width=300,min_height=400', (string) $rule);
  20. $rule = Rule::dimensions()
  21. ->when(true, function ($rule) {
  22. $rule->height('100');
  23. })
  24. ->unless(true, function ($rule) {
  25. $rule->width('200');
  26. });
  27. $this->assertSame('dimensions:height=100', (string) $rule);
  28. }
  29. }