5 "github.com/blang/semver"
9 func TestDependencyResolving(t *testing.T) {
13 "Versions": [{ "Version": "1.0.0" }, { "Version": "1.5.0" },{ "Version": "2.0.0" }]
16 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": ">1.0.0 <2.0.0"} }]
18 "Name": "Unresolvable",
19 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": "<=1.0.0", "Bar": ">0.0.0"} }]
22 var all PluginPackages
23 err := json.Unmarshal([]byte(js), &all)
27 selected, err := all.ResolveStep(PluginVersions{}, PluginDependencies{
28 &PluginDependency{"Bar", semver.MustParseRange(">=1.0.0")},
31 check := func(name, version string) {
32 v := selected.Find(name)
33 expected := semver.MustParse(version)
35 t.Errorf("Failed to resolve %s", name)
36 } else if expected.NE(v.Version) {
37 t.Errorf("%s resolved in wrong version got %s", name, v)
48 selected, err = all.ResolveStep(PluginVersions{}, PluginDependencies{
49 &PluginDependency{"Unresolvable", semver.MustParseRange(">0.0.0")},
52 t.Error("Unresolvable package resolved:", selected)