function CountryCodeConstraintTest::testConstraintLoadsChoicesFromCountryManager

Same name and namespace in other branches
  1. 11.x core/tests/Drupal/Tests/Core/Validation/Plugin/Validation/Constraint/CountryCodeConstraintTest.php \Drupal\Tests\Core\Validation\Plugin\Validation\Constraint\CountryCodeConstraintTest::testConstraintLoadsChoicesFromCountryManager()

File

core/tests/Drupal/Tests/Core/Validation/Plugin/Validation/Constraint/CountryCodeConstraintTest.php, line 19

Class

CountryCodeConstraintTest
@covers \Drupal\Core\Validation\Plugin\Validation\Constraint\CountryCodeConstraint[[api-linebreak]] @group validation

Namespace

Drupal\Tests\Core\Validation\Plugin\Validation\Constraint

Code

public function testConstraintLoadsChoicesFromCountryManager() : void {
  $countries = [
    'US' => 'United States',
    'CA' => 'Canada',
    'MX' => 'Mexico',
  ];
  // The CountryCode constraint should call the country manager's getList()
  // method to compile a list of valid choices.
  $country_manager = $this->createMock(CountryManagerInterface::class);
  $country_manager->expects($this->atLeastOnce())
    ->method('getList')
    ->willReturn($countries);
  $container = new ContainerBuilder();
  $container->set(CountryManagerInterface::class, $country_manager);
  $constraint = CountryCodeConstraint::create($container, [], 'CountryCode', []);
  $this->assertInstanceOf(Choice::class, $constraint);
  $this->assertSame(array_keys($countries), $constraint->choices);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.