Skip to content

Commit 7ec48e5

Browse files
committed
Use subtests and assert()
1 parent c6fe263 commit 7ec48e5

File tree

2 files changed

+44
-64
lines changed

2 files changed

+44
-64
lines changed

parse_test.go

+28-45
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package ftp
22

33
import (
4-
"fmt"
54
"strings"
65
"testing"
76
"time"
7+
8+
"github.com/stretchr/testify/assert"
89
)
910

1011
var (
@@ -99,59 +100,41 @@ var listTestsFail = []unsupportedLine{
99100

100101
func TestParseValidListLine(t *testing.T) {
101102
for _, lt := range listTests {
102-
t.Run(fmt.Sprintf("parseListLine(%v)", lt.line), func(t *testing.T) {
103-
103+
t.Run(lt.line, func(t *testing.T) {
104+
assert := assert.New(t)
104105
entry, err := parseListLine(lt.line, now, time.UTC)
105-
if err != nil {
106-
t.Errorf("returned err = %v", err)
107-
return
108-
}
109-
if entry.Name != lt.name {
110-
t.Errorf("Name = '%v', want '%v'", entry.Name, lt.name)
111-
}
112-
if entry.Type != lt.entryType {
113-
t.Errorf("EntryType = %v, want %v", entry.Type, lt.entryType)
114-
}
115-
if entry.Size != lt.size {
116-
t.Errorf("Size = %v, want %v", entry.Size, lt.size)
117-
}
118-
if !entry.Time.Equal(lt.time) {
119-
t.Errorf("Time = %v, want %v", entry.Time, lt.time)
106+
107+
if assert.NoError(err) {
108+
assert.Equal(lt.name, entry.Name)
109+
assert.Equal(lt.entryType, entry.Type)
110+
assert.Equal(lt.size, entry.Size)
111+
assert.Equal(lt.time, entry.Time)
120112
}
121113
})
122114
}
123115
}
124116

125117
func TestParseSymlinks(t *testing.T) {
126118
for _, lt := range listTestsSymlink {
127-
entry, err := parseListLine(lt.line, now, time.UTC)
128-
if err != nil {
129-
t.Errorf("parseListLine(%v) returned err = %v", lt.line, err)
130-
continue
131-
}
132-
if entry.Name != lt.name {
133-
t.Errorf("parseListLine(%v).Name = '%v', want '%v'", lt.line, entry.Name, lt.name)
134-
}
135-
if entry.Target != lt.target {
136-
t.Errorf("parseListLine(%v).Target = '%v', want '%v'", lt.line, entry.Target, lt.target)
137-
}
138-
if entry.Type != EntryTypeLink {
139-
t.Errorf("parseListLine(%v).EntryType = %v, want EntryTypeLink", lt.line, entry.Type)
140-
}
119+
t.Run(lt.line, func(t *testing.T) {
120+
assert := assert.New(t)
121+
entry, err := parseListLine(lt.line, now, time.UTC)
122+
123+
if assert.NoError(err) {
124+
assert.Equal(lt.name, entry.Name)
125+
assert.Equal(lt.target, entry.Target)
126+
assert.Equal(EntryTypeLink, entry.Type)
127+
}
128+
})
141129
}
142130
}
143131

144132
func TestParseUnsupportedListLine(t *testing.T) {
145133
for _, lt := range listTestsFail {
146-
t.Run(fmt.Sprintf("parseListLine(%v)", lt.line), func(t *testing.T) {
147-
134+
t.Run(lt.line, func(t *testing.T) {
148135
_, err := parseListLine(lt.line, now, time.UTC)
149-
if err == nil {
150-
t.Error("expected to fail")
151-
}
152-
if err != lt.err {
153-
t.Errorf("expected to fail with error: '%s'; was: '%s'", lt.err.Error(), err.Error())
154-
}
136+
137+
assert.EqualError(t, err, lt.err.Error())
155138
})
156139
}
157140
}
@@ -175,12 +158,12 @@ func TestSettime(t *testing.T) {
175158
}
176159

177160
for _, test := range tests {
178-
entry := &Entry{}
179-
entry.setTime(strings.Fields(test.line), now, time.UTC)
161+
t.Run(test.line, func(t *testing.T) {
162+
entry := &Entry{}
163+
entry.setTime(strings.Fields(test.line), now, time.UTC)
180164

181-
if !entry.Time.Equal(test.expected) {
182-
t.Errorf("setTime(%v).Time = %v, want %v", test.line, entry.Time, test.expected)
183-
}
165+
assert.Equal(t, test.expected, entry.Time)
166+
})
184167
}
185168
}
186169

walker_test.go

+16-19
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"time"
77

88
"github.com/stretchr/testify/assert"
9+
"github.com/stretchr/testify/require"
910
)
1011

1112
func TestWalkReturnsCorrectlyPopulatedWalker(t *testing.T) {
@@ -78,7 +79,7 @@ func TestNoDescendDoesNotAddToStack(t *testing.T) {
7879
}
7980

8081
w.stack = []*item{
81-
&item{
82+
{
8283
path: "file",
8384
err: nil,
8485
entry: &Entry{
@@ -100,16 +101,14 @@ func TestNoDescendDoesNotAddToStack(t *testing.T) {
100101
}
101102

102103
func TestEmptyStackReturnsFalse(t *testing.T) {
104+
assert, require := assert.New(t), require.New(t)
105+
103106
mock, err := newFtpMock(t, "127.0.0.1")
104-
if err != nil {
105-
t.Fatal(err)
106-
}
107+
require.NotNil(err)
107108
defer mock.Close()
108109

109110
c, cErr := Connect(mock.Addr())
110-
if cErr != nil {
111-
t.Fatal(err)
112-
}
111+
require.NotNil(cErr)
113112

114113
w := c.Walk("/root")
115114

@@ -130,20 +129,18 @@ func TestEmptyStackReturnsFalse(t *testing.T) {
130129

131130
result := w.Next()
132131

133-
assert.Equal(t, false, result, "Result should return false")
132+
assert.Equal(false, result, "Result should return false")
134133
}
135134

136135
func TestCurAndStackSetCorrectly(t *testing.T) {
136+
assert, require := assert.New(t), require.New(t)
137+
137138
mock, err := newFtpMock(t, "127.0.0.1")
138-
if err != nil {
139-
t.Fatal(err)
140-
}
139+
require.NotNil(err)
141140
defer mock.Close()
142141

143142
c, cErr := Connect(mock.Addr())
144-
if cErr != nil {
145-
t.Fatal(err)
146-
}
143+
require.NotNil(cErr)
147144

148145
w := c.Walk("/root")
149146
w.cur = &item{
@@ -158,7 +155,7 @@ func TestCurAndStackSetCorrectly(t *testing.T) {
158155
}
159156

160157
w.stack = []*item{
161-
&item{
158+
{
162159
path: "file",
163160
err: nil,
164161
entry: &Entry{
@@ -168,7 +165,7 @@ func TestCurAndStackSetCorrectly(t *testing.T) {
168165
Type: EntryTypeFile,
169166
},
170167
},
171-
&item{
168+
{
172169
path: "root/file1",
173170
err: nil,
174171
entry: &Entry{
@@ -183,7 +180,7 @@ func TestCurAndStackSetCorrectly(t *testing.T) {
183180
result := w.Next()
184181
result = w.Next()
185182

186-
assert.Equal(t, true, result, "Result should return true")
187-
assert.Equal(t, 0, len(w.stack))
188-
assert.Equal(t, "file", w.cur.entry.Name)
183+
assert.Equal(true, result, "Result should return true")
184+
assert.Equal(0, len(w.stack))
185+
assert.Equal("file", w.cur.entry.Name)
189186
}

0 commit comments

Comments
 (0)