package version import ( "reflect" "sort" "testing" ) func TestCollection(t *testing.T) { versionsRaw := []string{ "1.1.1", "1.0", "1.2", "2", "0.7.1", } versions := make([]*Version, len(versionsRaw)) for i, raw := range versionsRaw { v, err := NewVersion(raw) if err != nil { t.Fatalf("err: %s", err) } versions[i] = v } sort.Sort(Collection(versions)) actual := make([]string, len(versions)) for i, v := range versions { actual[i] = v.String() } expected := []string{ "0.7.1", "1.0.0", "1.1.1", "1.2.0", "2.0.0", } if !reflect.DeepEqual(actual, expected) { t.Fatalf("bad: %#v", actual) } }