You are here

abstract class CountValidatorTest in Plug 7

@author Bernhard Schussek <bschussek@gmail.com>

Hierarchy

Expanded class hierarchy of CountValidatorTest

File

lib/Symfony/validator/Symfony/Component/Validator/Tests/Constraints/CountValidatorTest.php, line 21

Namespace

Symfony\Component\Validator\Tests\Constraints
View source
abstract class CountValidatorTest extends AbstractConstraintValidatorTest {
  protected function getApiVersion() {
    return Validation::API_VERSION_2_5;
  }
  protected function createValidator() {
    return new CountValidator();
  }
  protected abstract function createCollection(array $content);
  public function testNullIsValid() {
    $this->validator
      ->validate(null, new Count(6));
    $this
      ->assertNoViolation();
  }

  /**
   * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
   */
  public function testExpectsCountableType() {
    $this->validator
      ->validate(new \stdClass(), new Count(5));
  }
  public function getThreeOrLessElements() {
    return array(
      array(
        $this
          ->createCollection(array(
          1,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          1,
          2,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          1,
          2,
          3,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          'a' => 1,
          'b' => 2,
          'c' => 3,
        )),
      ),
    );
  }
  public function getFourElements() {
    return array(
      array(
        $this
          ->createCollection(array(
          1,
          2,
          3,
          4,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          'a' => 1,
          'b' => 2,
          'c' => 3,
          'd' => 4,
        )),
      ),
    );
  }
  public function getFiveOrMoreElements() {
    return array(
      array(
        $this
          ->createCollection(array(
          1,
          2,
          3,
          4,
          5,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          1,
          2,
          3,
          4,
          5,
          6,
        )),
      ),
      array(
        $this
          ->createCollection(array(
          'a' => 1,
          'b' => 2,
          'c' => 3,
          'd' => 4,
          'e' => 5,
        )),
      ),
    );
  }

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

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

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

  /**
   * @dataProvider getFiveOrMoreElements
   */
  public function testTooManyValues($value) {
    $constraint = new Count(array(
      'max' => 4,
      'maxMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ count }}', count($value))
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Count::TOO_MANY_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getThreeOrLessElements
   */
  public function testTooFewValues($value) {
    $constraint = new Count(array(
      'min' => 4,
      'minMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ count }}', count($value))
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Count::TOO_FEW_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getFiveOrMoreElements
   */
  public function testTooManyValuesExact($value) {
    $constraint = new Count(array(
      'min' => 4,
      'max' => 4,
      'exactMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ count }}', count($value))
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Count::TOO_MANY_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getThreeOrLessElements
   */
  public function testTooFewValuesExact($value) {
    $constraint = new Count(array(
      'min' => 4,
      'max' => 4,
      'exactMessage' => 'myMessage',
    ));
    $this->validator
      ->validate($value, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ count }}', count($value))
      ->setParameter('{{ limit }}', 4)
      ->setInvalidValue($value)
      ->setPlural(4)
      ->setCode(Count::TOO_FEW_ERROR)
      ->assertRaised();
  }
  public function testDefaultOption() {
    $constraint = new Count(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 6
AbstractConstraintValidatorTest::setValue protected function
AbstractConstraintValidatorTest::tearDown protected function 1
CountValidatorTest::createCollection abstract protected function 2
CountValidatorTest::createValidator protected function Overrides AbstractConstraintValidatorTest::createValidator
CountValidatorTest::getApiVersion protected function Overrides AbstractConstraintValidatorTest::getApiVersion 4
CountValidatorTest::getFiveOrMoreElements public function
CountValidatorTest::getFourElements public function
CountValidatorTest::getThreeOrLessElements public function
CountValidatorTest::testDefaultOption public function
CountValidatorTest::testExpectsCountableType public function @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
CountValidatorTest::testNullIsValid public function
CountValidatorTest::testTooFewValues public function @dataProvider getThreeOrLessElements
CountValidatorTest::testTooFewValuesExact public function @dataProvider getThreeOrLessElements
CountValidatorTest::testTooManyValues public function @dataProvider getFiveOrMoreElements
CountValidatorTest::testTooManyValuesExact public function @dataProvider getFiveOrMoreElements
CountValidatorTest::testValidValuesExact public function @dataProvider getFourElements
CountValidatorTest::testValidValuesMax public function @dataProvider getThreeOrLessElements
CountValidatorTest::testValidValuesMin public function @dataProvider getFiveOrMoreElements