6 "github.com/blang/semver"
8 "github.com/flynn/json5"
11 func TestDependencyResolving(t *testing.T) {
15 "Versions": [{ "Version": "1.0.0" }, { "Version": "1.5.0" },{ "Version": "2.0.0" }]
18 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": ">1.0.0 <2.0.0"} }]
20 "Name": "Unresolvable",
21 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": "<=1.0.0", "Bar": ">0.0.0"} }]
24 var all PluginPackages
25 err := json5.Unmarshal([]byte(js), &all)
29 selected, err := all.Resolve(PluginVersions{}, PluginDependencies{
30 &PluginDependency{"Bar", semver.MustParseRange(">=1.0.0")},
33 check := func(name, version string) {
34 v := selected.find(name)
35 expected := semver.MustParse(version)
37 t.Errorf("Failed to resolve %s", name)
38 } else if expected.NE(v.Version) {
39 t.Errorf("%s resolved in wrong version got %s", name, v)
50 selected, err = all.Resolve(PluginVersions{}, PluginDependencies{
51 &PluginDependency{"Unresolvable", semver.MustParseRange(">0.0.0")},
54 t.Error("Unresolvable package resolved:", selected)