-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdependency_internal_test.go
110 lines (80 loc) · 2.22 KB
/
dependency_internal_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
package k6deps
import (
"io"
"testing"
"github.com/stretchr/testify/require"
)
func Test_Dependency_getConstraints(t *testing.T) {
t.Parallel()
dep := new(Dependency)
require.Equal(t, defaultConstraints, dep.GetConstraints())
dep, err := NewDependency("foo", "1.0")
require.NoError(t, err)
require.Equal(t, "1.0", dep.GetConstraints().String())
}
func Test_Dependency_update(t *testing.T) {
t.Parallel()
newdep := func(name, constraints string) *Dependency {
dep, err := NewDependency(name, constraints)
require.NoError(t, err)
return dep
}
tests := []struct {
name string
from *Dependency
to *Dependency
wantErr bool
}{
{name: "reqular", from: newdep("foo", "1.0"), to: newdep("foo", "")},
{name: "reqular", from: newdep("foo", ""), to: newdep("foo", "1.0")},
{name: "reqular", from: newdep("foo", "1.0"), to: newdep("foo", "1.0")},
{name: "reqular", from: newdep("foo", "1.0"), to: newdep("foo", "2.0"), wantErr: true},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
err := tt.to.update(tt.from)
if tt.wantErr {
require.Error(t, err)
} else {
require.NoError(t, err)
}
})
}
}
type errorWriter struct {
count int
}
func (e *errorWriter) Write([]byte) (int, error) {
if e.count--; e.count >= 0 {
return 0, nil
}
return 0, io.ErrUnexpectedEOF
}
func Test_Dependency_marshalText(t *testing.T) {
t.Parallel()
dep := new(Dependency)
err := dep.marshalText(&errorWriter{1})
require.Error(t, err)
}
func Test_Dependency_marshalJS(t *testing.T) {
t.Parallel()
dep := new(Dependency)
for i := 0; i < 5; i++ {
err := dep.marshalJS(&errorWriter{i})
require.Error(t, err)
}
}
func Test_reDependency(t *testing.T) {
t.Parallel()
var d Dependency
require.NoError(t, d.UnmarshalText([]byte("k6*")))
require.Equal(t, "*", d.Constraints.String())
require.NoError(t, d.UnmarshalText([]byte("k6 >= v0.55")))
require.Equal(t, ">=v0.55", d.Constraints.String())
require.NoError(t, d.UnmarshalText([]byte("k6 v0.0.0+135f85b")))
require.Equal(t, "v0.0.0+135f85b", d.Constraints.String())
require.NoError(t, d.UnmarshalText([]byte("k6 v0.0.0+90bb941")))
require.Equal(t, "v0.0.0+90bb941", d.Constraints.String())
}