You are here

class IssnValidatorTest in Plug 7

Hierarchy

Expanded class hierarchy of IssnValidatorTest

See also

https://en.wikipedia.org/wiki/Issn

File

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

Namespace

Symfony\Component\Validator\Tests\Constraints
View source
class IssnValidatorTest extends AbstractConstraintValidatorTest {
  protected function getApiVersion() {
    return Validation::API_VERSION_2_5;
  }
  protected function createValidator() {
    return new IssnValidator();
  }
  public function getValidLowerCasedIssn() {
    return array(
      array(
        '2162-321x',
      ),
      array(
        '2160-200x',
      ),
      array(
        '1537-453x',
      ),
      array(
        '1937-710x',
      ),
      array(
        '0002-922x',
      ),
      array(
        '1553-345x',
      ),
      array(
        '1553-619x',
      ),
    );
  }
  public function getValidNonHyphenatedIssn() {
    return array(
      array(
        '2162321X',
      ),
      array(
        '01896016',
      ),
      array(
        '15744647',
      ),
      array(
        '14350645',
      ),
      array(
        '07174055',
      ),
      array(
        '20905076',
      ),
      array(
        '14401592',
      ),
    );
  }
  public function getFullValidIssn() {
    return array(
      array(
        '1550-7416',
      ),
      array(
        '1539-8560',
      ),
      array(
        '2156-5376',
      ),
      array(
        '1119-023X',
      ),
      array(
        '1684-5315',
      ),
      array(
        '1996-0786',
      ),
      array(
        '1684-5374',
      ),
      array(
        '1996-0794',
      ),
    );
  }
  public function getValidIssn() {
    return array_merge($this
      ->getValidLowerCasedIssn(), $this
      ->getValidNonHyphenatedIssn(), $this
      ->getFullValidIssn());
  }
  public function getInvalidIssn() {
    return array(
      array(
        0,
        Issn::TOO_SHORT_ERROR,
      ),
      array(
        '1539',
        Issn::TOO_SHORT_ERROR,
      ),
      array(
        '2156-537A',
        Issn::INVALID_CHARACTERS_ERROR,
      ),
      array(
        '1119-0231',
        Issn::CHECKSUM_FAILED_ERROR,
      ),
      array(
        '1684-5312',
        Issn::CHECKSUM_FAILED_ERROR,
      ),
      array(
        '1996-0783',
        Issn::CHECKSUM_FAILED_ERROR,
      ),
      array(
        '1684-537X',
        Issn::CHECKSUM_FAILED_ERROR,
      ),
      array(
        '1996-0795',
        Issn::CHECKSUM_FAILED_ERROR,
      ),
    );
  }
  public function testNullIsValid() {
    $constraint = new Issn();
    $this->validator
      ->validate(null, $constraint);
    $this
      ->assertNoViolation();
  }
  public function testEmptyStringIsValid() {
    $constraint = new Issn();
    $this->validator
      ->validate('', $constraint);
    $this
      ->assertNoViolation();
  }

  /**
   * @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
   */
  public function testExpectsStringCompatibleType() {
    $constraint = new Issn();
    $this->validator
      ->validate(new \stdClass(), $constraint);
  }

  /**
   * @dataProvider getValidLowerCasedIssn
   */
  public function testCaseSensitiveIssns($issn) {
    $constraint = new Issn(array(
      'caseSensitive' => true,
      'message' => 'myMessage',
    ));
    $this->validator
      ->validate($issn, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $issn . '"')
      ->setCode(Issn::INVALID_CASE_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getValidNonHyphenatedIssn
   */
  public function testRequireHyphenIssns($issn) {
    $constraint = new Issn(array(
      'requireHyphen' => true,
      'message' => 'myMessage',
    ));
    $this->validator
      ->validate($issn, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $issn . '"')
      ->setCode(Issn::MISSING_HYPHEN_ERROR)
      ->assertRaised();
  }

  /**
   * @dataProvider getValidIssn
   */
  public function testValidIssn($issn) {
    $constraint = new Issn();
    $this->validator
      ->validate($issn, $constraint);
    $this
      ->assertNoViolation();
  }

  /**
   * @dataProvider getInvalidIssn
   */
  public function testInvalidIssn($issn, $code) {
    $constraint = new Issn(array(
      'message' => 'myMessage',
    ));
    $this->validator
      ->validate($issn, $constraint);
    $this
      ->buildViolation('myMessage')
      ->setParameter('{{ value }}', '"' . $issn . '"')
      ->setCode($code)
      ->assertRaised();
  }

}

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
IssnValidatorTest::createValidator protected function Overrides AbstractConstraintValidatorTest::createValidator
IssnValidatorTest::getApiVersion protected function Overrides AbstractConstraintValidatorTest::getApiVersion 2
IssnValidatorTest::getFullValidIssn public function
IssnValidatorTest::getInvalidIssn public function
IssnValidatorTest::getValidIssn public function
IssnValidatorTest::getValidLowerCasedIssn public function
IssnValidatorTest::getValidNonHyphenatedIssn public function
IssnValidatorTest::testCaseSensitiveIssns public function @dataProvider getValidLowerCasedIssn
IssnValidatorTest::testEmptyStringIsValid public function
IssnValidatorTest::testExpectsStringCompatibleType public function @expectedException \Symfony\Component\Validator\Exception\UnexpectedTypeException
IssnValidatorTest::testInvalidIssn public function @dataProvider getInvalidIssn
IssnValidatorTest::testNullIsValid public function
IssnValidatorTest::testRequireHyphenIssns public function @dataProvider getValidNonHyphenatedIssn
IssnValidatorTest::testValidIssn public function @dataProvider getValidIssn