geocoder-8.x-3.x-dev/tests/src/Kernel/ProviderTest.php

tests/src/Kernel/ProviderTest.php
<?php

namespace Drupal\Tests\geocoder\Kernel;

use Drupal\geocoder\Entity\GeocoderProvider;
use Drupal\geocoder\ProviderGeocoderPhpInterface;
use Drupal\KernelTests\KernelTestBase;
use Geocoder\Collection;
use Geocoder\Model\Coordinates;
use Geocoder\Query\GeocodeQuery;
use Geocoder\Query\ReverseQuery;

/**
 * Tests integration with PHP Geocoder provider.
 *
 * @group Geocoder
 */
class ProviderTest extends KernelTestBase {

  /**
   * {@inheritdoc}
   */
  protected static $modules = [
    'geocoder',
    'geocoder_test_provider',
  ];

  /**
   * Our test provider.
   *
   * @var \Drupal\geocoder\GeocoderProviderInterface
   */
  protected $provider;

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();
    $this->provider = GeocoderProvider::create([
      'id' => 'geocoder_test_provider',
      'plugin' => 'geocoder_test_provider',
    ]);
    $this->provider->save();
  }

  /**
   * Test geocode string via geocoder service.
   */
  public function testGeocodeService(): void {
    $geocoder = \Drupal::service('geocoder');
    $result = $geocoder->geocode('Test string', [
      $this->provider,
    ]);
    assert($result instanceof Collection);
    $this->assertEquals(75020, $result->first()->getPostalCode());
  }

  /**
   * Test reverse geocode string via geocoder service.
   */
  public function testReverseService(): void {
    $geocoder = \Drupal::service('geocoder');
    $result = $geocoder->reverse('1', '1', [
      $this->provider,
    ]);
    assert($result instanceof Collection);
    $this->assertEquals(75020, $result->first()->getPostalCode());
  }

  /**
   * Test directly geocoding query via provider.
   */
  public function testGeocodeQuery(): void {
    $query = GeocodeQuery::create('Test string');
    $plugin = $this->provider->getPlugin();
    assert($plugin instanceof ProviderGeocoderPhpInterface);
    $result = $plugin->geocodeQuery($query);
    assert($result instanceof Collection);
    $this->assertEquals(75020, $result->first()->getPostalCode());
  }

  /**
   * Test directly reverse query via provider.
   */
  public function testReverseQuery(): void {
    $query = ReverseQuery::create(new Coordinates(1, 1));
    /** @var \Drupal\geocoder\ProviderGeocoderPhpInterface $plugin */
    $plugin = $this->provider->getPlugin();
    $result = $plugin->reverseQuery($query);
    assert($result instanceof Collection);
    $this->assertEquals(75020, $result->first()->getPostalCode());
  }

}

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

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