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  }