]>
Commit | Line | Data |
---|---|---|
bae9f6d2 JC |
1 | package getter |
2 | ||
3 | import ( | |
4 | "net/url" | |
5 | ) | |
6 | ||
7 | // MockGetter is an implementation of Getter that can be used for tests. | |
8 | type MockGetter struct { | |
107c1cdb ND |
9 | getter |
10 | ||
bae9f6d2 JC |
11 | // Proxy, if set, will be called after recording the calls below. |
12 | // If it isn't set, then the *Err values will be returned. | |
13 | Proxy Getter | |
14 | ||
15 | GetCalled bool | |
16 | GetDst string | |
17 | GetURL *url.URL | |
18 | GetErr error | |
19 | ||
20 | GetFileCalled bool | |
21 | GetFileDst string | |
22 | GetFileURL *url.URL | |
23 | GetFileErr error | |
24 | } | |
25 | ||
26 | func (g *MockGetter) Get(dst string, u *url.URL) error { | |
27 | g.GetCalled = true | |
28 | g.GetDst = dst | |
29 | g.GetURL = u | |
30 | ||
31 | if g.Proxy != nil { | |
32 | return g.Proxy.Get(dst, u) | |
33 | } | |
34 | ||
35 | return g.GetErr | |
36 | } | |
37 | ||
38 | func (g *MockGetter) GetFile(dst string, u *url.URL) error { | |
39 | g.GetFileCalled = true | |
40 | g.GetFileDst = dst | |
41 | g.GetFileURL = u | |
42 | ||
43 | if g.Proxy != nil { | |
44 | return g.Proxy.GetFile(dst, u) | |
45 | } | |
46 | return g.GetFileErr | |
47 | } | |
48 | ||
49 | func (g *MockGetter) ClientMode(u *url.URL) (ClientMode, error) { | |
50 | if l := len(u.Path); l > 0 && u.Path[l-1:] == "/" { | |
51 | return ClientModeDir, nil | |
52 | } | |
53 | return ClientModeFile, nil | |
54 | } |