add version constraints

This commit is contained in:
Aneurin Barker Snook
2024-07-12 12:11:18 +01:00
parent cac475d2f2
commit 33d31f84be
5 changed files with 185 additions and 0 deletions
+48
View File
@@ -47,3 +47,51 @@ func TestListSort(t *testing.T) {
}
}
}
func TestList_Match(t *testing.T) {
type TestCase struct {
Input List
Constraint *Constraint
Expected List
}
testCases := []TestCase{
{
Input: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
Expected: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
},
{
Input: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
Constraint: &Constraint{Gt: MustParse("1.0.0")},
Expected: List{MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
},
{
Input: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
Constraint: &Constraint{Lt: MustParse("3.0.0")},
Expected: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2")},
},
{
Input: List{MustParse("1.0.0"), MustParse("1.1.0"), MustParse("2.0.2"), MustParse("3.4.5")},
Constraint: &Constraint{Gte: MustParse("2.0.2")},
Expected: List{MustParse("2.0.2"), MustParse("3.4.5")},
},
}
for i, testCase := range testCases {
actual := testCase.Input.Match(testCase.Constraint)
ok := true
for j, v := range actual {
expected := testCase.Expected[j]
cmp := v.Compare(expected)
if cmp != 0 {
ok = false
t.Errorf("test %d failed at position %d (expected %s, got %s)", i, j, expected, actual)
}
}
if ok {
t.Logf("test %d passed", i)
}
}
}