InstalledPackagesListTrait.php

Namespace

Drupal\Tests\package_manager\Traits

File

core/modules/package_manager/tests/src/Traits/InstalledPackagesListTrait.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\package_manager\Traits;

use Drupal\package_manager\InstalledPackage;
use Drupal\package_manager\InstalledPackagesList;

/**
 * A trait for comparing InstalledPackagesList objects.
 *
 * @internal
 *   This is an internal part of Package Manager and may be changed or removed
 *   at any time without warning. External code should not interact with this
 *   class.
 */
trait InstalledPackagesListTrait {
    
    /**
     * Asserts that 2 installed package lists are equal.
     *
     * @param \Drupal\package_manager\InstalledPackagesList $expected_list
     *   The expected list.
     * @param \Drupal\package_manager\InstalledPackagesList $actual_list
     *   The actual list.
     */
    private function assertPackageListsEqual(InstalledPackagesList $expected_list, InstalledPackagesList $actual_list) : void {
        $expected_array = $expected_list->getArrayCopy();
        $actual_array = $actual_list->getArrayCopy();
        ksort($expected_array);
        ksort($actual_array);
        $this->assertSame(array_keys($expected_array), array_keys($actual_array));
        foreach ($expected_list as $package_name => $expected_package) {
            $this->assertInstanceOf(InstalledPackage::class, $expected_package);
            $actual_package = $actual_list[$package_name];
            $this->assertInstanceOf(InstalledPackage::class, $actual_package);
            $this->assertSame($expected_package->name, $actual_package->name);
            $this->assertSame($expected_package->version, $actual_package->version);
            $this->assertSame($expected_package->path, $actual_package->path);
            $this->assertSame($expected_package->type, $actual_package->type);
            $this->assertSame($expected_package->getProjectName(), $actual_package->getProjectName());
        }
    }

}

Traits

Title Deprecated Summary
InstalledPackagesListTrait A trait for comparing InstalledPackagesList objects.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.