1
0
mirror of https://github.com/lxc/incus.git synced 2026-02-05 09:46:19 +01:00
Files
incus/internal/version/version_test.go
Stéphane Graber db29bd7aa8 Limit new() calls
Be more explicit about variable types.

Signed-off-by: Stéphane Graber <stgraber@stgraber.org>
2025-04-24 00:49:56 -04:00

94 lines
2.0 KiB
Go

package version
import (
"testing"
"github.com/stretchr/testify/suite"
)
type versionTestSuite struct {
suite.Suite
}
func TestVersionTestSuite(t *testing.T) {
suite.Run(t, &versionTestSuite{})
}
func (s *versionTestSuite) TestNewVersion() {
v, err := NewDottedVersion("1.2.3")
s.Nil(err)
s.Equal(1, v.Major)
s.Equal(2, v.Minor)
s.Equal(3, v.Patch)
}
func (s *versionTestSuite) TestNewVersionNoPatch() {
v, err := NewDottedVersion("1.2")
s.Nil(err)
s.Equal(-1, v.Patch)
}
func (s *versionTestSuite) TestNewVersionInvalid() {
v, err := NewDottedVersion("1.nope")
s.Nil(v)
s.NotNil(err)
}
func (s *versionTestSuite) TestParseDashes() {
v, err := Parse("1.2.3-asdf")
s.Nil(err)
s.Equal(1, v.Major)
s.Equal(2, v.Minor)
s.Equal(3, v.Patch)
}
func (s *versionTestSuite) TestParseParentheses() {
v, err := Parse("1.2.3(beta1)")
s.Nil(err)
s.Equal(1, v.Major)
s.Equal(2, v.Minor)
s.Equal(3, v.Patch)
}
func (s *versionTestSuite) TestParseFail() {
v, err := Parse("asdfaf")
s.Nil(v)
s.NotNil(err)
}
func (s *versionTestSuite) TestString() {
v, _ := NewDottedVersion("1.2.3")
s.Equal("1.2.3", v.String())
}
func (s *versionTestSuite) TestCompareEqual() {
v1, _ := NewDottedVersion("1.2.3")
v2, _ := NewDottedVersion("1.2.3")
s.Equal(0, v1.Compare(v2))
s.Equal(0, v2.Compare(v1))
v3, _ := NewDottedVersion("1.2")
v4, _ := NewDottedVersion("1.2")
s.Equal(0, v3.Compare(v4))
s.Equal(0, v4.Compare(v3))
}
func (s *versionTestSuite) TestCompareOlder() {
v1, _ := NewDottedVersion("1.2.3")
v2, _ := NewDottedVersion("1.2.4")
v3, _ := NewDottedVersion("1.3")
v4, _ := NewDottedVersion("2.2.3")
s.Equal(-1, v1.Compare(v2))
s.Equal(-1, v1.Compare(v3))
s.Equal(-1, v1.Compare(v4))
}
func (s *versionTestSuite) TestCompareNewer() {
v1, _ := NewDottedVersion("1.2.3")
v2, _ := NewDottedVersion("1.2.2")
v3, _ := NewDottedVersion("1.1")
v4, _ := NewDottedVersion("0.3.3")
s.Equal(1, v1.Compare(v2))
s.Equal(1, v1.Compare(v3))
s.Equal(1, v1.Compare(v4))
}