Skip to content
Snippets Groups Projects
Commit 13f36eb6 authored by Vadym Abramchuk's avatar Vadym Abramchuk
Browse files

Issue #3404115: Add address_zone field type import/export tests

parent fedd76c0
No related branches found
Tags 1.4.5
1 merge request!100Issue #3404115: Support address_zone field type
Pipeline #162454 passed with warnings
<?php
namespace Drupal\Tests\single_content_sync\Kernel\FieldProcessor;
use CommerceGuys\Addressing\Zone\Zone;
/**
* @coversDefaultClass \Drupal\single_content_sync\Plugin\SingleContentSyncFieldProcessor\AddressZone
*/
class AddressZoneTest extends FieldProcessorTestBase {
/**
* {@inheritdoc}
*/
protected function importFieldValueDataProvider(): array {
return [
'address_zone' => [
[
'type' => 'address_zone',
'settings' => [
'available_countries' => [],
],
],
[
0 => [
'id' => 'field_zone',
'label' => 'zone',
'territories' => [
0 => [
'country_code' => 'UA',
'administrative_area' => '07',
'locality' => NULL,
'dependent_locality' => NULL,
'included_postal_codes' => NULL,
'excluded_postal_codes' => NULL,
],
],
],
],
[
0 => [
'id' => 'field_zone',
'label' => 'zone',
'territories' => [
0 => [
'country_code' => 'UA',
'administrative_area' => '07',
'locality' => NULL,
'dependent_locality' => NULL,
'included_postal_codes' => NULL,
'excluded_postal_codes' => NULL,
],
],
],
],
['address'],
],
];
}
/**
* {@inheritdoc}
*/
protected function exportFieldValueDataProvider(): array {
return [
'address_zone' => [
[
'type' => 'address_zone',
'settings' => [
'available_countries' => [],
],
],
new Zone([
'id' => 'field_zone',
'label' => 'zone',
'territories' => [
[
'country_code' => 'UA',
'administrative_area' => '07',
'locality' => NULL,
'dependent_locality' => NULL,
'included_postal_codes' => NULL,
'excluded_postal_codes' => NULL,
],
],
]),
[
0 => [
'id' => 'field_zone',
'label' => 'zone',
'territories' => [
0 => [
'country_code' => 'UA',
'administrative_area' => '07',
'locality' => NULL,
'dependent_locality' => NULL,
'included_postal_codes' => NULL,
'excluded_postal_codes' => NULL,
],
],
],
],
['address'],
],
];
}
/**
* {@inheritdoc}
*/
protected function assertImportedValueEquals(mixed $expectedFieldValue, mixed $actualImportedFieldValue): void {
foreach ($expectedFieldValue as $delta => $expectedValue) {
/** @var \CommerceGuys\Addressing\Zone\Zone $zone */
$zone = $actualImportedFieldValue[$delta]['value'];
$this->assertInstanceOf(Zone::class, $zone);
$this->assertEquals($expectedValue['id'], $zone->getId());
$this->assertEquals($expectedValue['label'], $zone->getLabel());
$expectedTerritories = $expectedValue['territories'];
$importedTerritories = $zone->getTerritories();
$this->assertCount(count($expectedTerritories), $importedTerritories);
$this->assertEquals(array_keys($expectedTerritories), array_keys($importedTerritories));
foreach ($expectedTerritories as $territoryDelta => $expectedTerritory) {
$importedTerritory = $importedTerritories[$territoryDelta];
$this->assertEquals($expectedTerritory['country_code'], $importedTerritory->getCountryCode());
$this->assertEquals($expectedTerritory['administrative_area'], $importedTerritory->getAdministrativeArea());
$this->assertEquals($expectedTerritory['locality'], $importedTerritory->getLocality());
$this->assertEquals($expectedTerritory['dependent_locality'], $importedTerritory->getDependentLocality());
$this->assertEquals($expectedTerritory['included_postal_codes'], $importedTerritory->getIncludedPostalCodes());
$this->assertEquals($expectedTerritory['excluded_postal_codes'], $importedTerritory->getExcludedPostalCodes());
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment