factory_lollipop-1.0.x-dev/tests/modules/factory_lollipop_test/src/Factories/MenuMainFactory.php

tests/modules/factory_lollipop_test/src/Factories/MenuMainFactory.php
<?php

namespace Drupal\factory_lollipop_test\Factories;

use Drupal\factory_lollipop\FactoryInterface;
use Drupal\factory_lollipop\FixtureFactory;

/**
 * Creates Drupal Menu with Links for use in tests.
 */
class MenuMainFactory implements FactoryInterface {

  /**
   * {@inheritdoc}
   */
  public function getName():string {
    return 'menu_main';
  }

  /**
   * {@inheritdoc}
   */
  public function resolve(FixtureFactory $lollipop): void {
    $lollipop->define('menu', 'menu_main', [
      'id' => 'main',
    ]);

    // Then create a simple link hierarchy:
    // - parent
    //   - child-1
    //     - child-1-1
    //   - child-2.
    // Parent.
    $lollipop->define('menu link', 'menu_main_link_parent', [
      'title' => 'parent',
      'provider' => $lollipop->association('menu_main'),
      'menu_name' => $lollipop->association('menu_main'),
      'bundle' => 'menu_link_content',
      'link' => ['uri' => 'internal:/menu-test/hierarchy/parent'],
    ]);

    // child-1.
    $lollipop->define('menu link', 'menu_main_link_child_1', [
      'title' => 'child-1',
      'provider' => $lollipop->association('menu_main'),
      'menu_name' => $lollipop->association('menu_main'),
      'bundle' => 'menu_link_content',
      'link' => ['uri' => 'internal:/menu-test/hierarchy/parent/child-1'],
      'parent' => $lollipop->association('menu_main_link_parent'),
    ]);

    // child-1-1.
    $lollipop->define('menu link', 'menu_main_link_child_1_1', [
      'title' => 'child-1-1',
      'provider' => $lollipop->association('menu_main'),
      'menu_name' => $lollipop->association('menu_main'),
      'bundle' => 'menu_link_content',
      'link' => ['uri' => 'internal:/menu-test/hierarchy/parent/child-1/child-1-1'],
      'parent' => $lollipop->association('menu_main_link_child_1'),
    ]);

    // child-2.
    $lollipop->define('menu link', 'menu_main_link_child_2', [
      'title' => 'child-2',
      'provider' => $lollipop->association('menu_main'),
      'menu_name' => $lollipop->association('menu_main'),
      'bundle' => 'menu_link_content',
      'link' => ['uri' => 'internal:/menu-test/hierarchy/parent/child-2'],
      'parent' => $lollipop->association('menu_main_link_parent'),
    ]);
  }

}

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

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