From 83c060a0981dd56e666e655e4dc87d018c64a469 Mon Sep 17 00:00:00 2001 From: StephenButtolph Date: Wed, 20 May 2020 12:03:55 -0400 Subject: [PATCH] Added version tests --- version/parser_test.go | 54 +++++++++++++++++++++++++ version/version_test.go | 88 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 version/parser_test.go create mode 100644 version/version_test.go diff --git a/version/parser_test.go b/version/parser_test.go new file mode 100644 index 0000000..e969913 --- /dev/null +++ b/version/parser_test.go @@ -0,0 +1,54 @@ +// (c) 2019-2020, Ava Labs, Inc. All rights reserved. +// See the file LICENSE for licensing terms. + +package version + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNewDefaultParser(t *testing.T) { + p := NewDefaultParser() + + v, err := p.Parse("ava/1.2.3") + + assert.NoError(t, err) + assert.NotNil(t, v) + assert.Equal(t, "ava/1.2.3", v.String()) + assert.Equal(t, "ava", v.App()) + assert.Equal(t, 1, v.Major()) + assert.Equal(t, 2, v.Minor()) + assert.Equal(t, 3, v.Patch()) + assert.NoError(t, v.Compatible(v)) + assert.False(t, v.Before(v)) + + badVersions := []string{ + "", + "ava/", + "ava/z.0.0", + "ava/0.z.0", + "ava/0.0.z", + } + for _, badVersion := range badVersions { + _, err := p.Parse(badVersion) + assert.Error(t, err) + } +} + +func TestNewParser(t *testing.T) { + p := NewParser(":", ",") + + v, err := p.Parse("ava:1,2,3") + + assert.NoError(t, err) + assert.NotNil(t, v) + assert.Equal(t, "ava:1,2,3", v.String()) + assert.Equal(t, "ava", v.App()) + assert.Equal(t, 1, v.Major()) + assert.Equal(t, 2, v.Minor()) + assert.Equal(t, 3, v.Patch()) + assert.NoError(t, v.Compatible(v)) + assert.False(t, v.Before(v)) +} diff --git a/version/version_test.go b/version/version_test.go new file mode 100644 index 0000000..7eda7f8 --- /dev/null +++ b/version/version_test.go @@ -0,0 +1,88 @@ +// (c) 2019-2020, Ava Labs, Inc. All rights reserved. +// See the file LICENSE for licensing terms. + +package version + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestNewDefaultVersion(t *testing.T) { + v := NewDefaultVersion("ava", 1, 2, 3) + + assert.NotNil(t, v) + assert.Equal(t, "ava/1.2.3", v.String()) + assert.Equal(t, "ava", v.App()) + assert.Equal(t, 1, v.Major()) + assert.Equal(t, 2, v.Minor()) + assert.Equal(t, 3, v.Patch()) + assert.NoError(t, v.Compatible(v)) + assert.False(t, v.Before(v)) +} + +func TestNewVersion(t *testing.T) { + v := NewVersion("ava", ":", ",", 1, 2, 3) + + assert.NotNil(t, v) + assert.Equal(t, "ava:1,2,3", v.String()) + assert.Equal(t, "ava", v.App()) + assert.Equal(t, 1, v.Major()) + assert.Equal(t, 2, v.Minor()) + assert.Equal(t, 3, v.Patch()) + assert.NoError(t, v.Compatible(v)) + assert.False(t, v.Before(v)) +} + +func TestIncompatibleApps(t *testing.T) { + v0 := NewDefaultVersion("ava", 1, 2, 3) + v1 := NewDefaultVersion("notava", 1, 2, 3) + + assert.NotNil(t, v0) + assert.NotNil(t, v1) + assert.Error(t, v0.Compatible(v1)) + assert.Error(t, v1.Compatible(v0)) + + assert.False(t, v0.Before(v1)) + assert.False(t, v1.Before(v0)) +} + +func TestIncompatibleMajor(t *testing.T) { + v0 := NewDefaultVersion("ava", 1, 2, 3) + v1 := NewDefaultVersion("ava", 2, 2, 3) + + assert.NotNil(t, v0) + assert.NotNil(t, v1) + assert.Error(t, v0.Compatible(v1)) + assert.Error(t, v1.Compatible(v0)) + + assert.True(t, v0.Before(v1)) + assert.False(t, v1.Before(v0)) +} + +func TestIncompatibleMinor(t *testing.T) { + v0 := NewDefaultVersion("ava", 1, 2, 3) + v1 := NewDefaultVersion("ava", 1, 3, 3) + + assert.NotNil(t, v0) + assert.NotNil(t, v1) + assert.Error(t, v0.Compatible(v1)) + assert.Error(t, v1.Compatible(v0)) + + assert.True(t, v0.Before(v1)) + assert.False(t, v1.Before(v0)) +} + +func TestCompatiblePatch(t *testing.T) { + v0 := NewDefaultVersion("ava", 1, 2, 3) + v1 := NewDefaultVersion("ava", 1, 2, 4) + + assert.NotNil(t, v0) + assert.NotNil(t, v1) + assert.NoError(t, v0.Compatible(v1)) + assert.NoError(t, v1.Compatible(v0)) + + assert.True(t, v0.Before(v1)) + assert.False(t, v1.Before(v0)) +}