xero-8.x-2.x-dev/tests/src/Unit/XeroQueryTestBase.php

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

namespace Drupal\Tests\xero\Unit;

use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\serialization\Normalizer\ComplexDataNormalizer;
use Drupal\serialization\Normalizer\TypedDataNormalizer;
use Drupal\Tests\UnitTestCase;
use Drupal\Tests\xero\Traits\XeroGuidTrait;
use Drupal\xero\Normalizer\XeroNormalizer;
use Drupal\xero\XeroQuery;
use Prophecy\Argument;
use Prophecy\PhpUnit\ProphecyTrait;
use Symfony\Component\Serializer\Serializer;

/**
 * Class XeroQueryTestBase provides helper methods for unit tests.
 */
abstract class XeroQueryTestBase extends UnitTestCase {

  use ProphecyTrait;
  use XeroGuidTrait;

  /**
   * The typed data manager.
   *
   * @var \Drupal\Core\TypedData\TypedDataManager
   */
  protected $typedDataManager;

  /**
   * Symfony serializer.
   *
   * @var \Symfony\Component\Serializer\Serializer
   */
  protected $serializer;

  /**
   * A logger channel factory.
   *
   * @var \Drupal\Core\Logger\LoggerChannelFactoryInterface
   */
  protected $loggerFactory;

  /**
   * The guzzle client.
   *
   * @var \Radcliffe\Xero\XeroClient
   */
  protected $client;

  /**
   * Null cache backend.
   *
   * @var \Drupal\Core\Cache\NullBackend
   */
  protected $cache;

  /**
   * The xero query instance.
   *
   * @var \Drupal\xero\XeroQuery
   */
  protected $query;

  /**
   * {@inheritdoc}
   */
  protected function setUp(): void {
    parent::setUp();

    // Setup Null cache backend.
    $this->cache = $this->createMock('Drupal\Core\Cache\NullBackend');

    // Setup LoggerChannelFactory.
    $logProphet = $this->prophesize('\Psr\Log\LoggerInterface');
    $logProphet->error(Argument::any(), Argument::any());
    $logger = $logProphet->reveal();
    $loggerFactoryProphet = $this->prophesize('\Drupal\Core\Logger\LoggerChannelFactoryInterface');
    $loggerFactoryProphet->addLogger($logger);
    $loggerFactoryProphet->get('xero')->willReturn($logger);
    $this->loggerFactory = $loggerFactoryProphet->reveal();

    // Mock the Typed Data Manager.
    $this->typedDataManager = $this->createMock('Drupal\Core\TypedData\TypedDataManager');

    // Mock XeroClient.
    $this->client = $this->createMock('\Radcliffe\Xero\XeroClient');

    // Setup container.
    $container = new ContainerBuilder();
    $container->set('typed_data_manager', $this->typedDataManager);
    $container->set('serializer', $this->serializer);
    \Drupal::setContainer($container);

    // Setup Serializer component class.
    $this->serializer = new Serializer([
      new ComplexDataNormalizer(),
      new XeroNormalizer($this->typedDataManager),
      new TypedDataNormalizer(),
    ]);

    $this->query = new XeroQuery($this->client, $this->serializer, $this->typedDataManager, $this->loggerFactory, $this->cache);
  }

}

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

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