You are here

public function LocationFunctionalTestTrait::setUp in farmOS 2.x

1 call to LocationFunctionalTestTrait::setUp()
LocationTest::setUp in modules/core/location/tests/src/Functional/LocationTest.php

File

modules/core/location/tests/src/Functional/LocationFunctionalTestTrait.php, line 41

Class

LocationFunctionalTestTrait
Trait for setting up functional location tests.

Namespace

Drupal\Tests\farm_location\Functional

Code

public function setUp() : void {
  parent::setUp();

  // Load asset and log storage.
  $entity_type_manager = $this->container
    ->get('entity_type.manager');
  $asset_storage = $entity_type_manager
    ->getStorage('asset');
  $log_storage = $entity_type_manager
    ->getStorage('log');

  // Create and login a user with permission to administer assets and logs.
  $this->user = $this
    ->createUser([
    'administer assets',
    'administer log',
  ]);
  $this
    ->drupalLogin($this->user);

  // Generate a location with random WKT polygon.
  $this->location = $asset_storage
    ->create([
    'type' => 'location',
    'name' => $this
      ->randomMachineName(),
    'intrinsic_geometry' => $this
      ->reduceWkt(\Drupal::service('geofield.wkt_generator')
      ->wktGeneratePolygon(NULL, 5)),
    'is_fixed' => TRUE,
  ]);
  $this->location
    ->save();

  // Create a new asset.
  $this->asset = $asset_storage
    ->create([
    'type' => 'object',
    'name' => $this
      ->randomMachineName(),
  ]);
  $this->asset
    ->save();

  // Create a "done" movement log that references the asset.
  $this->log = $log_storage
    ->create([
    'type' => 'movement',
    'status' => 'done',
    'asset' => [
      'target_id' => $this->asset
        ->id(),
    ],
    'location' => [
      'target_id' => $this->location
        ->id(),
    ],
    'is_movement' => TRUE,
  ]);
  $this->log
    ->save();
}