github.com/haalcala/mattermost-server-change-repo@v0.0.0-20210713015153-16753fbeee5f/plugin/checker/internal/version/version_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See LICENSE.txt for license information. 3 4 package version 5 6 import ( 7 "fmt" 8 "testing" 9 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func TestVersionComparison(t *testing.T) { 14 testCases := []struct { 15 a, b V 16 }{ 17 { 18 a: V("1.2"), 19 b: V("1.10"), 20 }, 21 { 22 a: V("1.2.1"), 23 b: V("1.2.3"), 24 }, 25 { 26 a: V("1.2"), 27 b: V("1.2.3"), 28 }, 29 { 30 a: V("1.2.1"), 31 b: V("1.2.3"), 32 }, 33 { 34 a: V("1.1"), 35 b: V("1.2.3"), 36 }, 37 { 38 a: V("1.2.3"), 39 b: V("1.3"), 40 }, 41 { 42 a: V("1.2.1-rc2"), 43 b: V("1.2.1-rc10"), 44 }, 45 } 46 47 for _, tc := range testCases { 48 t.Run(fmt.Sprintf("%+v", tc), func(t *testing.T) { 49 assert.True(t, tc.a.LessThan(tc.b)) 50 assert.False(t, tc.b.LessThan(tc.a)) 51 52 assert.True(t, tc.b.GreaterThanOrEqualTo(tc.a)) 53 assert.False(t, tc.a.GreaterThanOrEqualTo(tc.b)) 54 }) 55 } 56 57 assert.True(t, V("1.2").GreaterThanOrEqualTo("1.2")) 58 }