commercetools-8.x-1.2-alpha1/tests/src/Unit/CommercetoolsLocalizationTest.php

tests/src/Unit/CommercetoolsLocalizationTest.php
<?php

declare(strict_types=1);

namespace Drupal\Tests\commercetools\Unit;

use Drupal\commercetools\CommercetoolsLocalization;
use Drupal\test_helpers\TestHelpers;
use Drupal\Tests\UnitTestCase;

/**
 * @coversDefaultClass \Drupal\commercetools\CommercetoolsLocalization
 * @group commercetools
 */
class CommercetoolsLocalizationTest extends UnitTestCase {

  const DUMMY_PROJECT_INFO = [
    'languages' => [
      'en',
      'en-GB',
      'en-AU',
      'en-NZ',
      'en-US',
      'de-DE',
      'es-ES',
      'fr-FR',
      'it-IT',
      'pt-PT',
      'nl-NL',
      'en',
      'de',
      'fr',
    ],
    'countries' => [
      'FR',
      'GB',
      'DE',
      'US',
      'ES',
    ],
    'currencies' => [
      'EUR',
      'GBP',
      'USD',
    ],
  ];

  const DUMMY_LANGUAGES = [
    'fr',
    'en',
    'de',
    'en-gb',
    'it',
  ];

  const EXPECTED = [
    'fr' => [
      CommercetoolsLocalization::CONFIG_LANGUAGE => 'fr-FR',
      CommercetoolsLocalization::CONFIG_COUNTRY => 'FR',
      CommercetoolsLocalization::CONFIG_CURRENCY => 'EUR',
    ],
    'en' => [
      CommercetoolsLocalization::CONFIG_LANGUAGE => 'en-US',
      CommercetoolsLocalization::CONFIG_COUNTRY => 'US',
      CommercetoolsLocalization::CONFIG_CURRENCY => 'USD',
    ],
    'de' => [
      CommercetoolsLocalization::CONFIG_LANGUAGE => 'de-DE',
      CommercetoolsLocalization::CONFIG_COUNTRY => 'DE',
      CommercetoolsLocalization::CONFIG_CURRENCY => 'EUR',
    ],
    'en-gb' => [
      CommercetoolsLocalization::CONFIG_LANGUAGE => 'en-GB',
      CommercetoolsLocalization::CONFIG_COUNTRY => 'GB',
      CommercetoolsLocalization::CONFIG_CURRENCY => 'GBP',
    ],
    'it' => [
      CommercetoolsLocalization::CONFIG_LANGUAGE => 'it-IT',
      CommercetoolsLocalization::CONFIG_COUNTRY => 'FR',
      CommercetoolsLocalization::CONFIG_CURRENCY => 'EUR',
    ],
  ];

  /**
   * @covers ::__construct
   * @covers ::isInvalidProjectInfo
   * @covers ::processProjectInfo
   * @covers ::assortLanguageParameters
   * @covers ::matchParameters
   * @covers ::suggestParameters
   * @covers ::getMap
   * @covers ::getCurrencyForLocale
   * @covers ::toParametersArray
   * @covers ::flattenCurrenciesMap
   * @covers ::getPrimaryLanguage
   * @covers ::getRegion
   */
  public function testService() {
    TestHelpers::service('language_manager', initService: TRUE);
    TestHelpers::service('config.factory');
    $root = TestHelpers::getModuleRoot(CommercetoolsLocalization::class);
    /** @var \Drupal\commercetools\CommercetoolsLocalization $service */
    $service = TestHelpers::service('commercetools.localization', initService: TRUE, servicesYamlFile: $root . '/commercetools.services.yml');
    $service->languages = array_combine(self::DUMMY_LANGUAGES, self::DUMMY_LANGUAGES);

    $this->assertFalse($service->isInvalidProjectInfo(self::DUMMY_PROJECT_INFO));

    $result = $service->processProjectInfo(self::DUMMY_PROJECT_INFO);

    $this->assertNotEmpty($result);
    $this->assertCount(count(self::DUMMY_LANGUAGES), $result);
    $this->assertEquals(self::EXPECTED, $result);

  }

}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc