4 "github.com/blang/semver"
7 "github.com/yosuke-furukawa/json5/encoding/json5"
10 func TestDependencyResolving(t *testing.T) {
14 "Versions": [{ "Version": "1.0.0" }, { "Version": "1.5.0" },{ "Version": "2.0.0" }]
17 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": ">1.0.0 <2.0.0"} }]
19 "Name": "Unresolvable",
20 "Versions": [{ "Version": "1.0.0", "Require": {"Foo": "<=1.0.0", "Bar": ">0.0.0"} }]
23 var all PluginPackages
24 err := json5.Unmarshal([]byte(js), &all)
28 selected, err := all.Resolve(PluginVersions{}, PluginDependencies{
29 &PluginDependency{"Bar", semver.MustParseRange(">=1.0.0")},
32 check := func(name, version string) {
33 v := selected.find(name)
34 expected := semver.MustParse(version)
36 t.Errorf("Failed to resolve %s", name)
37 } else if expected.NE(v.Version) {
38 t.Errorf("%s resolved in wrong version got %s", name, v)
49 selected, err = all.Resolve(PluginVersions{}, PluginDependencies{
50 &PluginDependency{"Unresolvable", semver.MustParseRange(">0.0.0")},
53 t.Error("Unresolvable package resolved:", selected)