class LengthValidatorTest

Hierarchy

  • class \Symfony\Component\Validator\Tests\Constraints\LengthValidatorTest extends \Symfony\Component\Validator\Tests\Constraints\PHPUnit_Framework_TestCase

Expanded class hierarchy of LengthValidatorTest

File

drupal/core/vendor/symfony/validator/Symfony/Component/Validator/Tests/Constraints/LengthValidatorTest.php, line 17

Namespace

Symfony\Component\Validator\Tests\Constraints
View source
class LengthValidatorTest extends \PHPUnit_Framework_TestCase {
  protected $context;
  protected $validator;
  protected function setUp() {
    $this->context = $this
      ->getMock('Symfony\\Component\\Validator\\ExecutionContext', array(), array(), '', false);
    $this->validator = new LengthValidator();
    $this->validator
      ->initialize($this->context);
  }
  protected function tearDown() {
    $this->context = null;
    $this->validator = null;
  }
  public function testNullIsValid() {
    $this->context
      ->expects($this
      ->never())
      ->method('addViolation');
    $this->validator
      ->validate(null, new Length(6));
  }
  public function testEmptyStringIsValid() {
    $this->context
      ->expects($this
      ->never())
      ->method('addViolation');
    $this->validator
      ->validate('', new Length(6));
  }

  /**
   * @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(
        'üü',
        true,
      ),
      array(
        'éé',
        true,
      ),
      array(
        123,
      ),
      array(
        '123',
      ),
      array(
        'üüü',
        true,
      ),
      array(
        'ééé',
        true,
      ),
    );
  }
  public function getFourCharacters() {
    return array(
      array(
        1234,
      ),
      array(
        '1234',
      ),
      array(
        'üüüü',
        true,
      ),
      array(
        'éééé',
        true,
      ),
    );
  }
  public function getNotFourCharacters() {
    return array_merge($this
      ->getThreeOrLessCharacters(), $this
      ->getFiveOrMoreCharacters());
  }
  public function getFiveOrMoreCharacters() {
    return array(
      array(
        12345,
      ),
      array(
        '12345',
      ),
      array(
        'üüüüü',
        true,
      ),
      array(
        'ééééé',
        true,
      ),
      array(
        123456,
      ),
      array(
        '123456',
      ),
      array(
        'üüüüüü',
        true,
      ),
      array(
        'éééééé',
        true,
      ),
    );
  }

  /**
   * @dataProvider getFiveOrMoreCharacters
   */
  public function testValidValuesMin($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $this->context
      ->expects($this
      ->never())
      ->method('addViolation');
    $constraint = new Length(array(
      'min' => 5,
    ));
    $this->validator
      ->validate($value, $constraint);
  }

  /**
   * @dataProvider getThreeOrLessCharacters
   */
  public function testValidValuesMax($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $this->context
      ->expects($this
      ->never())
      ->method('addViolation');
    $constraint = new Length(array(
      'max' => 3,
    ));
    $this->validator
      ->validate($value, $constraint);
  }

  /**
   * @dataProvider getFourCharacters
   */
  public function testValidValuesExact($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $this->context
      ->expects($this
      ->never())
      ->method('addViolation');
    $constraint = new Length(4);
    $this->validator
      ->validate($value, $constraint);
  }

  /**
   * @dataProvider getThreeOrLessCharacters
   */
  public function testInvalidValuesMin($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $constraint = new Length(array(
      'min' => 4,
      'minMessage' => 'myMessage',
    ));
    $this->context
      ->expects($this
      ->once())
      ->method('addViolation')
      ->with('myMessage', $this
      ->identicalTo(array(
      '{{ value }}' => (string) $value,
      '{{ limit }}' => 4,
    )), $this
      ->identicalTo($value), 4);
    $this->validator
      ->validate($value, $constraint);
  }

  /**
   * @dataProvider getFiveOrMoreCharacters
   */
  public function testInvalidValuesMax($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $constraint = new Length(array(
      'max' => 4,
      'maxMessage' => 'myMessage',
    ));
    $this->context
      ->expects($this
      ->once())
      ->method('addViolation')
      ->with('myMessage', $this
      ->identicalTo(array(
      '{{ value }}' => (string) $value,
      '{{ limit }}' => 4,
    )), $this
      ->identicalTo($value), 4);
    $this->validator
      ->validate($value, $constraint);
  }

  /**
   * @dataProvider getNotFourCharacters
   */
  public function testInvalidValuesExact($value, $mbOnly = false) {
    if ($mbOnly && !function_exists('mb_strlen')) {
      $this
        ->markTestSkipped('mb_strlen does not exist');
    }
    $constraint = new Length(array(
      'min' => 4,
      'max' => 4,
      'exactMessage' => 'myMessage',
    ));
    $this->context
      ->expects($this
      ->once())
      ->method('addViolation')
      ->with('myMessage', $this
      ->identicalTo(array(
      '{{ value }}' => (string) $value,
      '{{ limit }}' => 4,
    )), $this
      ->identicalTo($value), 4);
    $this->validator
      ->validate($value, $constraint);
  }
  public function testConstraintGetDefaultOption() {
    $constraint = new Length(5);
    $this
      ->assertEquals(5, $constraint->min);
    $this
      ->assertEquals(5, $constraint->max);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
LengthValidatorTest::$context protected property
LengthValidatorTest::$validator protected property
LengthValidatorTest::getFiveOrMoreCharacters public function
LengthValidatorTest::getFourCharacters public function
LengthValidatorTest::getNotFourCharacters public function
LengthValidatorTest::getThreeOrLessCharacters public function
LengthValidatorTest::setUp protected function
LengthValidatorTest::tearDown protected function
LengthValidatorTest::testConstraintGetDefaultOption public function
LengthValidatorTest::testEmptyStringIsValid public function
LengthValidatorTest::testExpectsStringCompatibleType public function @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
LengthValidatorTest::testInvalidValuesExact public function @dataProvider getNotFourCharacters
LengthValidatorTest::testInvalidValuesMax public function @dataProvider getFiveOrMoreCharacters
LengthValidatorTest::testInvalidValuesMin public function @dataProvider getThreeOrLessCharacters
LengthValidatorTest::testNullIsValid public function
LengthValidatorTest::testValidValuesExact public function @dataProvider getFourCharacters
LengthValidatorTest::testValidValuesMax public function @dataProvider getThreeOrLessCharacters
LengthValidatorTest::testValidValuesMin public function @dataProvider getFiveOrMoreCharacters