--TEST--
Partial update installs from lock even if package don't exist in public repo anymore
--COMPOSER--
{
    "repositories": [
        {
            "type": "package",
            "package": [
                {
                    "name": "a/a", "version": "dev-master",
                    "extra": { "branch-alias": { "dev-master": "2.3.x-dev" } },
                    "source": { "reference": "newmaster-a2", "type": "git", "url": "" }
                },
                {
                    "name": "b/b", "version": "dev-master",
                    "extra": { "branch-alias": { "dev-master": "2.3.x-dev" } },
                    "source": { "reference": "newmaster-b2", "type": "git", "url": "" },
                    "require": { "a/a": "dev-master" }
                }
            ]
        }
    ],
    "require": {
        "a/a": "~2.1",
        "b/b": "~2.1"
    },
    "minimum-stability": "dev"
}
--INSTALLED--
[
    {
        "name": "a/a", "version": "dev-master", "version_normalized": "9999999-dev",
        "extra": { "branch-alias": { "dev-master": "2.1.x-dev" } },
        "source": { "reference": "oldmaster-a", "type": "git", "url": "" },
        "type": "library"
    },
    {
        "name": "b/b", "version": "dev-master", "version_normalized": "9999999-dev",
        "extra": { "branch-alias": { "dev-master": "2.1.x-dev" } },
        "source": { "reference": "oldmaster-b", "type": "git", "url": "" },
        "require": { "a/a": "dev-master" },
        "type": "library"
    }
]
--LOCK--
{
    "packages": [
        {
            "name": "a/a", "version": "dev-master",
            "extra": { "branch-alias": { "dev-master": "2.2.x-dev" } },
            "source": { "reference": "newmaster-a", "type": "git", "url": "" },
            "type": "library"
        },
        {
            "name": "b/b", "version": "dev-master",
            "extra": { "branch-alias": { "dev-master": "2.1.x-dev" } },
            "source": { "reference": "oldmaster-b", "type": "git", "url": "" },
            "require": { "a/a": "dev-master" },
            "type": "library"
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "dev",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}
--RUN--
update b/b
--EXPECT-LOCK--
{
    "packages": [
        {
            "name": "a/a", "version": "dev-master",
            "extra": { "branch-alias": { "dev-master": "2.2.x-dev" } },
            "source": { "reference": "newmaster-a", "type": "git", "url": "" },
            "type": "library"
        },
        {
            "name": "b/b", "version": "dev-master",
            "extra": { "branch-alias": { "dev-master": "2.3.x-dev" } },
            "source": { "reference": "newmaster-b2", "type": "git", "url": "" },
            "require": { "a/a": "dev-master" },
            "type": "library"
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "dev",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}
--EXPECT--
Updating a/a (dev-master oldmaster-a) to a/a (dev-master newmaster-a)
Updating b/b (dev-master oldmaster-b) to b/b (dev-master newmaster-b2)
Marking a/a (2.2.x-dev newmaster-a) as installed, alias of a/a (dev-master newmaster-a)
Marking b/b (2.3.x-dev newmaster-b2) as installed, alias of b/b (dev-master newmaster-b2)
Marking b/b (2.1.x-dev oldmaster-b) as uninstalled, alias of b/b (dev-master oldmaster-b)
Marking a/a (2.1.x-dev oldmaster-a) as uninstalled, alias of a/a (dev-master oldmaster-a)