You are here

class LengthValidatorTest in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php \Symfony\Component\Validator\Tests\Constraints\LengthValidatorTest

Hierarchy

Expanded class hierarchy of LengthValidatorTest

File

vendor/symfony/validator/Tests/Constraints/LengthValidatorTest.php, line 18

Namespace

Symfony\Component\Validator\Tests\Constraints
View source
class LengthValidatorTest extends AbstractConstraintValidatorTest {
  protected function getApiVersion() {
    return Validation::API_VERSION_2_5;
  }
  protected function createValidator() {
    return new LengthValidator();
  }
  public function testNullIsValid() {
    $this->validator
      ->validate(null, new Length(6));
    $this
      ->assertNoViolation();
  }
  public function testEmptyStringIsValid() {
    $this->validator
      ->validate('', new Length(6));
    $this
      ->assertNoViolation();
  }

  /**
   * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
   */
  public function testExpectsStringCompatibleType() {
    $this->validator
      ->validate(new \stdClass(), new Length(5));
  }
  public function getThreeOrLessCharacters() {
    return array(
      array(
        12,
      ),
      array(
        '12',
      ),
      array(
        'üü',
      ),
      array(
        'éé',
      ),
      array(
        123,
      ),
      array(
        '123',
      ),
      array(
        'üüü',
      ),
      array(
        'ééé',
      ),
    );
  }
  public function getFourCharacters() {
    return array(
      array(
        1234,
      ),
      array(
        '1234',
      ),
      array(
        'üüüü',
      ),
      array(
        'éééé',
      ),
    );
  }
  public function getFiveOrMoreCharacters() {
    return array(
      array(
        12345,
      ),
      array(
        '12345',
      ),
      array(
        'üüüüü',
      ),
      array(
        'ééééé',
      ),
      array(
        123456,
      ),
      array(
        '123456',
      ),
      array(
        'üüüüüü',
      ),
      array(
        'éééééé',
      ),
    );
  }
  public function getOneCharset() {
    if (!function_exists('iconv') && !function_exists('mb_convert_encoding')) {
      $this
        ->markTestSkipped('Mbstring or iconv is required for this test.');
    }
    return array(
      array(
        'é',
        'utf8',
        true,
      ),
      array(
        "",
        'CP1252',
        true,
      ),
      array(
        "",
        'XXX',
        false,
      ),
      array(
        "",
        'utf8',
        false,
      ),
    );
  }

  /**
   * @dataProvider getFiveOrMoreCharacters
   */
  public function testValidValuesMin($value) {
    $constraint = new Length(array(
      'min' => 5,
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->assertNoViolation();
  }

  /**
   * @dataProvider getThreeOrLessCharacters
   */
  public function testValidValuesMax($value) {
    $constraint = new Length(array(
      'max' => 3,
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->assertNoViolation();
  }

  /**
   * @dataProvider getFourCharacters
   */
  public function testValidValuesExact($value) {
    $constraint = new Length(4);
    $this->validator
      ->validate($value, $constraint);
    $this
      ->assertNoViolation();
  }

  /**
   * @dataProvider getThreeOrLessCharacters
   */
  public function testInvalidValuesMin($value) {
    $constraint = new Length(array(
      'min' => 4,
      'minMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $value . '"')
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Length::TOO_SHORT_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getFiveOrMoreCharacters
   */
  public function testInvalidValuesMax($value) {
    $constraint = new Length(array(
      'max' => 4,
      'maxMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $value . '"')
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Length::TOO_LONG_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getThreeOrLessCharacters
   */
  public function testInvalidValuesExactLessThanFour($value) {
    $constraint = new Length(array(
      'min' => 4,
      'max' => 4,
      'exactMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $value . '"')
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Length::TOO_SHORT_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getFiveOrMoreCharacters
   */
  public function testInvalidValuesExactMoreThanFour($value) {
    $constraint = new Length(array(
      'min' => 4,
      'max' => 4,
      'exactMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $value . '"')
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Length::TOO_LONG_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getOneCharset
   */
  public function testOneCharset($value, $charset, $isValid) {
    $constraint = new Length(array(
      'min' => 1,
      'max' => 1,
      'charset' => $charset,
      'charsetMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    if ($isValid) {
      $this
        ->assertNoViolation();
    }
    else {
      $this
        ->buildViolation('myMessage')
        ->setParameter('{{ value }}', '"' . $value . '"')
        ->setParameter('{{ charset }}', $charset)
        ->setInvalidValue($value)
        ->assertRaised();
    }
  }
  public function testConstraintGetDefaultOption() {
    $constraint = new Length(5);
    $this
      ->assertEquals(5, $constraint->min);
    $this
      ->assertEquals(5, $constraint->max);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AbstractConstraintValidatorTest::$constraint protected property
AbstractConstraintValidatorTest::$context protected property 1
AbstractConstraintValidatorTest::$defaultTimezone protected property
AbstractConstraintValidatorTest::$group protected property
AbstractConstraintValidatorTest::$metadata protected property
AbstractConstraintValidatorTest::$object protected property
AbstractConstraintValidatorTest::$propertyPath protected property
AbstractConstraintValidatorTest::$root protected property
AbstractConstraintValidatorTest::$validator protected property 1
AbstractConstraintValidatorTest::$value protected property
AbstractConstraintValidatorTest::assertNoViolation protected function
AbstractConstraintValidatorTest::assertViolation Deprecated protected function
AbstractConstraintValidatorTest::assertViolations Deprecated protected function
AbstractConstraintValidatorTest::buildViolation protected function
AbstractConstraintValidatorTest::createContext protected function
AbstractConstraintValidatorTest::createViolation Deprecated protected function
AbstractConstraintValidatorTest::expectNoValidate protected function
AbstractConstraintValidatorTest::expectValidateAt protected function
AbstractConstraintValidatorTest::expectValidateValueAt protected function
AbstractConstraintValidatorTest::restoreDefaultTimezone protected function
AbstractConstraintValidatorTest::setDefaultTimezone protected function
AbstractConstraintValidatorTest::setGroup protected function
AbstractConstraintValidatorTest::setObject protected function
AbstractConstraintValidatorTest::setProperty protected function
AbstractConstraintValidatorTest::setPropertyPath protected function
AbstractConstraintValidatorTest::setRoot protected function
AbstractConstraintValidatorTest::setUp protected function 2
AbstractConstraintValidatorTest::setValue protected function
AbstractConstraintValidatorTest::tearDown protected function 1
LengthValidatorTest::createValidator protected function Overrides AbstractConstraintValidatorTest::createValidator
LengthValidatorTest::getApiVersion protected function Overrides AbstractConstraintValidatorTest::getApiVersion
LengthValidatorTest::getFiveOrMoreCharacters public function
LengthValidatorTest::getFourCharacters public function
LengthValidatorTest::getOneCharset public function
LengthValidatorTest::getThreeOrLessCharacters public function
LengthValidatorTest::testConstraintGetDefaultOption public function
LengthValidatorTest::testEmptyStringIsValid public function
LengthValidatorTest::testExpectsStringCompatibleType public function @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
LengthValidatorTest::testInvalidValuesExactLessThanFour public function @dataProvider getThreeOrLessCharacters
LengthValidatorTest::testInvalidValuesExactMoreThanFour public function @dataProvider getFiveOrMoreCharacters
LengthValidatorTest::testInvalidValuesMax public function @dataProvider getFiveOrMoreCharacters
LengthValidatorTest::testInvalidValuesMin public function @dataProvider getThreeOrLessCharacters
LengthValidatorTest::testNullIsValid public function
LengthValidatorTest::testOneCharset public function @dataProvider getOneCharset
LengthValidatorTest::testValidValuesExact public function @dataProvider getFourCharacters
LengthValidatorTest::testValidValuesMax public function @dataProvider getThreeOrLessCharacters
LengthValidatorTest::testValidValuesMin public function @dataProvider getFiveOrMoreCharacters