-
Notifications
You must be signed in to change notification settings - Fork 246
/
Copy pathget_mock.go
61 lines (49 loc) · 1.16 KB
/
get_mock.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
package getter
import (
"context"
"net/url"
)
// MockGetter is an implementation of Getter that can be used for tests.
type MockGetter struct {
// Proxy, if set, will be called after recording the calls below.
// If it isn't set, then the *Err values will be returned.
Proxy Getter
GetCalled bool
GetDst string
GetURL *url.URL
GetErr error
GetFileCalled bool
GetFileDst string
GetFileURL *url.URL
GetFileErr error
}
func (g *MockGetter) Get(ctx context.Context, req *Request) error {
g.GetCalled = true
g.GetDst = req.Dst
g.GetURL = req.u
if g.Proxy != nil {
return g.Proxy.Get(ctx, req)
}
return g.GetErr
}
func (g *MockGetter) GetFile(ctx context.Context, req *Request) error {
g.GetFileCalled = true
g.GetFileDst = req.Dst
g.GetFileURL = req.u
if g.Proxy != nil {
return g.Proxy.GetFile(ctx, req)
}
return g.GetFileErr
}
func (g *MockGetter) Mode(ctx context.Context, u *url.URL) (Mode, error) {
if l := len(u.Path); l > 0 && u.Path[l-1:] == "/" {
return ModeDir, nil
}
return ModeFile, nil
}
func (g *MockGetter) Detect(req *Request) (bool, error) {
if g.Proxy != nil {
return g.Proxy.Detect(req)
}
return true, nil
}