CommerceGuys\Addressing\Tests\Validator\Constraints\AddressFormatConstraintValidatorTest::testConstraintFields PHP Method

testConstraintFields() public method

    public function testConstraintFields()
    {
        $allFields = AddressField::getAll();
        $nameFields = [AddressField::GIVEN_NAME, AddressField::FAMILY_NAME];
        $this->constraint->fields = array_diff($allFields, $nameFields);
        $address = new Address();
        $address = $address->withCountryCode('CN')->withAdministrativeArea('Beijing Shi')->withLocality('Xicheng Qu')->withPostalCode('123456')->withAddressLine1('Yitiao Lu');
        $this->validator->validate($address, $this->constraint);
        $this->assertNoViolation();
        $this->constraint->fields = array_diff($allFields, [AddressField::POSTAL_CODE]);
        $address = $address->withPostalCode('INVALID')->withGivenName('John')->withFamilyName('Smith');
        $this->validator->validate($address, $this->constraint);
        $this->assertNoViolation();
        $this->constraint->fields = array_diff($allFields, [AddressField::ADMINISTRATIVE_AREA]);
        $address = $address->withAdministrativeArea('INVALID')->withPostalCode('123456');
        $this->validator->validate($address, $this->constraint);
        $this->assertNoViolation();
        $address = $address->withAdministrativeArea('Beijing Shi')->withLocality('INVALID');
        $this->validator->validate($address, $this->constraint);
        $this->assertNoViolation();
    }