123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package utils
- import (
- "testing"
- "github.com/stretchr/testify/assert"
- )
- func TestCompareVersions(t *testing.T) {
- cases := []struct {
- ver1 string
- ver2 string
- out int
- }{
- {"1", "1.0.1", -1},
- {"1.0.1", "1.0.2", -1},
- {"1.0.3", "1.1", -1},
- {"1.1", "1.1.1", -1},
- {"1.3.2", "1.2", 1},
- {"1.1.1", "1.1.1", 0},
- {"1.1.0", "1.1", 0},
- }
- for _, each := range cases {
- t.Run(each.ver1, func(t *testing.T) {
- actual := CompareVersions(each.ver1, each.ver2)
- assert.Equal(t, each.out, actual)
- })
- }
- }
- func TestCustomCompareVersions(t *testing.T) {
- cases := []struct {
- ver1 string
- ver2 string
- operator string
- out bool
- }{
- {"1", "1.0.1", ">", false},
- {"1", "0.9.9", ">", true},
- {"1", "1-0.1", "<", true},
- {"1.0.1", "1-0.1", "<", false},
- {"1.0.1", "1.0.1", "==", true},
- {"1.0.1", "1.0.2", "==", false},
- {"1.1-1", "1.0.2", "==", false},
- {"1.0.1", "1.0.2", ">=", false},
- {"1.0.2", "1.0.2", ">=", true},
- {"1.0.3", "1.0.2", ">=", true},
- {"1.0.4", "1.0.2", "<=", false},
- {"1.0.4", "1.0.6", "<=", true},
- {"1.0.4", "1.0.4", "<=", true},
- }
- for _, each := range cases {
- t.Run(each.ver1, func(t *testing.T) {
- actual := CustomCompareVersions(each.ver1, each.ver2, each.operator)
- assert.Equal(t, each.out, actual)
- })
- }
- }
|