xero-8.x-2.x-dev/tests/src/Unit/Plugin/DataType/XeroComplexItemBaseTest.php

tests/src/Unit/Plugin/DataType/XeroComplexItemBaseTest.php
<?php

namespace Drupal\Tests\xero\Unit\Plugin\DataType;

use Drupal\Core\TypedData\DataDefinition;
use Drupal\Core\TypedData\Plugin\DataType\FloatData;
use Drupal\Core\TypedData\Plugin\DataType\StringData;
use Drupal\xero\Plugin\DataType\Account;
use Drupal\xero\Plugin\DataType\Invoice;
use Drupal\xero\TypedData\Definition\AccountDefinition;
use Drupal\xero\TypedData\Definition\InvoiceDefinition;

/**
 * Assert setting and getting Payment properties.
 *
 * @coversDefaultClass \Drupal\xero\Plugin\DataType\XeroItemBase
 * @group xero
 */
class XeroComplexItemBaseTest extends TestBase {

  const XERO_TYPE = 'xero_payment';
  const XERO_TYPE_CLASS = '\Drupal\xero\Plugin\DataType\Payment';
  const XERO_DEFINITION_CLASS = '\Drupal\xero\TypedData\Definition\PaymentDefinition';

  /**
   * Test methods.
   */
  public function testMethods() {
    // Create data type.
    $type_class = self::XERO_TYPE_CLASS;
    $payment = new $type_class($this->dataDefinition, self::XERO_TYPE);

    $this->assertEquals('Payments', $payment->getXeroProperty('plural_name'));
    $this->assertEquals('Reference', $payment->getXeroProperty('label'));

    $invoiceDefinition = new InvoiceDefinition([
      'id' => 'xero_invoice',
      'definition class' => '\Drupal\xero\TypedData\Definition\InvoiceDefinition',
    ]);
    $invoice = new Invoice($invoiceDefinition, 'xero_invoice');
    $accountDefinition = new AccountDefinition([
      'id' => 'xero_account',
      'definition class' => '\Drupal\xero\TypedData\Definition\AccountDefinition',
    ]);
    $account = new Account($accountDefinition, 'xero_account');
    $stringDefinition = new DataDefinition(['id' => 'string']);
    $date = new StringData($stringDefinition, 'string');
    $date->setValue('2015-10-05');
    $floatDefinition = new DataDefinition(['id' => 'float']);
    $amount = new FloatData($floatDefinition, 'float');
    $amount->setValue(10.0);

    $this->assertEquals('InvoiceID', $invoice->getXeroProperty('guid_name'));

    $this->typedDataManager->expects($this->any())
      ->method('getPropertyInstance')
      ->willReturnMap([
        [$payment, 'Invoice', NULL, $invoice],
        [$payment, 'Account', NULL, $account],
        [$payment, 'Date', '2015-10-05', $date],
        [$payment, 'Amount', 10.0, $amount],
      ]);

    $payment->setValue([
      'Invoice' => NULL,
      'Account' => NULL,
      'Date' => '2015-10-05',
      'Amount' => 10.0,
    ]);

    $expected = [
      '#theme' => 'xero_payment',
      '#item' => [
        'Invoice' => [],
        'Account' => [],
        'Date' => '2015-10-05',
        'Amount' => 10.0,
      ],
      '#attributes' => [
        'class' => ['xero-item', 'xero-item--payment'],
      ],
    ];

    $this->assertEquals($expected, $payment->view());
  }

}

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

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