/**
  * @dataProvider validateProvider
  */
 public function testValidate($value, $violates, $type = null, $defaultRegion = null)
 {
     $validator = new PhoneNumberValidator();
     if (class_exists('Symfony\\Component\\Validator\\Context\\ExecutionContext')) {
         $executionContextClass = 'Symfony\\Component\\Validator\\Context\\ExecutionContext';
     } else {
         $executionContextClass = 'Symfony\\Component\\Validator\\ExecutionContext';
     }
     $context = $this->getMockBuilder($executionContextClass)->disableOriginalConstructor()->getMock();
     $validator->initialize($context);
     $constraint = new PhoneNumber();
     if (null !== $type) {
         $constraint->type = $type;
     }
     if (null !== $defaultRegion) {
         $constraint->defaultRegion = $defaultRegion;
     }
     if (true === $violates) {
         if ($value instanceof PhoneNumberObject) {
             $constraintValue = PhoneNumberUtil::getInstance()->format($value, PhoneNumberFormat::INTERNATIONAL);
         } else {
             $constraintValue = (string) $value;
         }
         $context->expects($this->once())->method('addViolation')->with($constraint->getMessage(), array('{{ type }}' => $constraint->type, '{{ value }}' => $constraintValue));
     } else {
         $context->expects($this->never())->method('addViolation');
     }
     $validator->validate($value, $constraint);
 }
 /**
  * @dataProvider messageProvider
  */
 public function testMessage($message = null, $type = null, $expectedMessage)
 {
     $phoneNumber = new PhoneNumber();
     if (null !== $message) {
         $phoneNumber->message = $message;
     }
     if (null !== $type) {
         $phoneNumber->type = $type;
     }
     $this->assertSame($expectedMessage, $phoneNumber->getMessage());
 }