z_mirror/fmm

git clone https://git.raiguard.me/z_mirror/fmm

Caleb HeuerConsider a nil version to be equal8f22b8d

predep-parsing
1.2 KiB56 linesraw
1package main
2
3import (
4	"testing"
5
6	"github.com/stretchr/testify/assert"
7)
8
9func TestNewDependency(t *testing.T) {
10	tests := []struct {
11		input   string
12		name    string
13		version *Version
14		kind    DependencyKind
15		req     VersionCmpRes
16	}{
17		{"flib", "flib", nil, DependencyRequired, VersionAny},
18	}
19	for _, test := range tests {
20		dep, err := newDependency(test.input)
21		if err != nil {
22			t.Error(err)
23		}
24		assert.Equal(t, dep.Ident.Name, test.name)
25		if test.version == nil {
26			assert.Nil(t, dep.Ident.Version)
27		} else {
28			assert.NotNil(t, dep.Ident.Version)
29			assert.Equal(t, dep.Ident.Version.cmp(test.version), test.req)
30		}
31
32		assert.Equal(t, dep.Kind, test.kind)
33		assert.Equal(t, dep.Req, test.req)
34	}
35}
36
37func TestDependencyTest(t *testing.T) {
38	tests := []struct {
39		dep, mod string
40		result   bool
41	}{
42		{"flib", "flib_0.1.1", true},
43		{"! flib", "flib_0.1.1", false},
44		{"flib >= 0.10", "flib_0.1.1", false},
45		{"flib >= 0.10", "flib_0.10.0", true},
46		{"flib >= 0.10.0", "flib_0.10.0", true},
47		{"flib > 0.10", "flib_0.10.0", false},
48	}
49
50	for _, test := range tests {
51		dep, err := newDependency(test.dep)
52		assert.NoError(t, err)
53		mod := newModIdent(test.mod)
54		assert.Equal(t, dep.Test(&mod), test.result)
55	}
56}