N98\Magento\Command\Installer\InstallCommandPackageVersionTest::assertOngoingPackageVersions PHP Method

assertOngoingPackageVersions() private method

helper assertion to verify that all packages with multiple versions are listet with the latest and greatest version first.
private assertOngoingPackageVersions ( array $packages, integer $namespacesMinimum, integer $nonVersionsMaximum )
$packages array
$namespacesMinimum integer minimum number of package namespace (e.g. CE and mirror), normally 2
$nonVersionsMaximum integer maximum number of packages that will trigger an assertion
    private function assertOngoingPackageVersions(array $packages, $namespacesMinimum, $nonVersionsMaximum)
    {
        $nonVersions = 0;
        $nonVersionsList = array();
        $nameStack = array();
        foreach ($packages as $package) {
            $this->assertArrayHasKey('name', $package);
            $this->assertArrayHasKey('version', $package);
            $name = $package['name'];
            $version = $package['version'];
            if (!$this->isQuadripartiteVersionNumber($version)) {
                $nonVersions++;
                continue;
            }
            list($namespace, $nameVersion) = $this->splitName($name);
            if ($nameVersion === null || $nameVersion !== $version) {
                $nonVersionsList[] = $name;
                $nonVersions++;
                continue;
            }
            $this->assertSame($version, $nameVersion);
            if (isset($nameStack[$namespace])) {
                $comparison = version_compare($nameStack[$namespace], $version);
                $message = sprintf("Check order of versions for package \"{$namespace}\", highter comes first, but got %s before %s", $nameStack[$namespace], $version);
                $this->assertGreaterThan(0, $comparison, $message);
            }
            $nameStack[$namespace] = $nameVersion;
        }
        $this->assertGreaterThanOrEqual($namespacesMinimum, count($nameStack));
        $message = sprintf('Too many non-versions (%s)', implode(', ', $nonVersionsList));
        $this->assertLessThan($nonVersionsMaximum, $nonVersions, $message);
    }