Files
jabba/semver/range_test.go
2016-03-26 16:09:25 -07:00

33 lines
880 B
Go

package semver
import (
"testing"
)
func TestContains(t *testing.T) {
assertWithinRange(t, "1.8", "1.8.0", true)
assertWithinRange(t, "1.7", "1.8.0", false)
assertWithinRange(t, "1.8.0-0", "1.8.0-0", true)
assertWithinRange(t, "1.8.0-0", "1.8.0-1", false)
assertWithinRange(t, "~1.8", "1.8.99", true)
assertWithinRange(t, "~1.8", "1.9.0", false)
assertWithinRange(t, "a@1.8", "a@1.8.72", true)
assertWithinRange(t, "1.8", "a@1.8.72", false)
assertWithinRange(t, "a@1.8", "b@1.8.72", false)
assertWithinRange(t, "a@1.8", "1.8.72", false)
}
func assertWithinRange(t *testing.T, rng string, ver string, value bool) {
r, err := ParseRange(rng)
if err != nil {
t.Fatalf("err: %v", err)
}
v, err := ParseVersion(ver)
if err != nil {
t.Fatalf("err: %v", err)
}
if r.Contains(v) != value {
t.Fatalf("expected range %v to contain %v (%v)", rng, ver, value)
}
}