github.com/makyo/juju@v0.0.0-20160425123129-2608902037e9/resource/context/internal/stub_test.go (about) 1 // Copyright 2016 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package internal_test 5 6 import ( 7 "io" 8 "path" 9 10 "github.com/juju/errors" 11 "github.com/juju/testing" 12 13 "github.com/juju/juju/resource" 14 "github.com/juju/juju/resource/context/internal" 15 ) 16 17 type internalStub struct { 18 *testing.Stub 19 20 ReturnGetResourceInfo resource.Resource 21 ReturnGetResourceData io.ReadCloser 22 ReturnNewContextDirectorySpec internal.ContextDirectorySpec 23 ReturnOpenResource internal.ContextOpenedResource 24 ReturnNewTempDirSpec internal.DownloadTempTarget 25 ReturnNewChecker internal.ContentChecker 26 ReturnCreateWriter io.WriteCloser 27 ReturnNewTempDir string 28 } 29 30 func newInternalStub() *internalStub { 31 stub := &testing.Stub{} 32 return &internalStub{ 33 Stub: stub, 34 } 35 } 36 37 func (s *internalStub) GetResource(name string) (resource.Resource, io.ReadCloser, error) { 38 s.Stub.AddCall("GetResource", name) 39 if err := s.Stub.NextErr(); err != nil { 40 return resource.Resource{}, nil, errors.Trace(err) 41 } 42 43 return s.ReturnGetResourceInfo, s.ReturnGetResourceData, nil 44 } 45 46 func (s *internalStub) NewContextDirectorySpec() internal.ContextDirectorySpec { 47 s.Stub.AddCall("NewContextDirectorySpec") 48 s.Stub.NextErr() // Pop one off. 49 50 return s.ReturnNewContextDirectorySpec 51 } 52 53 func (s *internalStub) OpenResource() (internal.ContextOpenedResource, error) { 54 s.Stub.AddCall("OpenResource") 55 if err := s.Stub.NextErr(); err != nil { 56 return nil, errors.Trace(err) 57 } 58 59 return s.ReturnOpenResource, nil 60 } 61 62 func (s *internalStub) Download(target internal.DownloadTarget, remote internal.ContextOpenedResource) error { 63 s.Stub.AddCall("Download", target, remote) 64 if err := s.Stub.NextErr(); err != nil { 65 return errors.Trace(err) 66 } 67 68 return nil 69 } 70 71 func (s *internalStub) DownloadDirect(target internal.DownloadTarget, remote internal.ContentSource) error { 72 s.Stub.AddCall("DownloadDirect", target, remote) 73 if err := s.Stub.NextErr(); err != nil { 74 return errors.Trace(err) 75 } 76 77 return nil 78 } 79 80 func (s *internalStub) ReplaceDirectory(tgt, src string) error { 81 s.Stub.AddCall("ReplaceDirectory", tgt, src) 82 if err := s.Stub.NextErr(); err != nil { 83 return errors.Trace(err) 84 } 85 86 return nil 87 } 88 89 func (s *internalStub) NewTempDirSpec() (internal.DownloadTempTarget, error) { 90 s.Stub.AddCall("NewTempDirSpec") 91 if err := s.Stub.NextErr(); err != nil { 92 return nil, errors.Trace(err) 93 } 94 95 return s.ReturnNewTempDirSpec, nil 96 } 97 98 func (s *internalStub) NewChecker(content internal.Content) internal.ContentChecker { 99 s.Stub.AddCall("NewChecker", content) 100 s.Stub.NextErr() // Pop one off. 101 102 return s.ReturnNewChecker 103 } 104 105 func (s *internalStub) WriteContent(target io.Writer, content internal.Content) error { 106 s.Stub.AddCall("WriteContent", target, content) 107 if err := s.Stub.NextErr(); err != nil { 108 return errors.Trace(err) 109 } 110 111 return nil 112 } 113 114 func (s *internalStub) CloseAndLog(closer io.Closer, label string) { 115 s.Stub.AddCall("CloseAndLog", closer, label) 116 s.Stub.NextErr() // Pop one off. 117 } 118 119 func (s *internalStub) MkdirAll(dirname string) error { 120 s.Stub.AddCall("MkdirAll", dirname) 121 if err := s.Stub.NextErr(); err != nil { 122 return errors.Trace(err) 123 } 124 125 return nil 126 } 127 128 func (s *internalStub) CreateWriter(filename string) (io.WriteCloser, error) { 129 s.Stub.AddCall("CreateWriter", filename) 130 if err := s.Stub.NextErr(); err != nil { 131 return nil, errors.Trace(err) 132 } 133 134 return s.ReturnCreateWriter, nil 135 } 136 137 func (s *internalStub) NewTempDir() (string, error) { 138 s.Stub.AddCall("NewTempDir") 139 if err := s.Stub.NextErr(); err != nil { 140 return "", errors.Trace(err) 141 } 142 143 return s.ReturnNewTempDir, nil 144 } 145 146 func (s *internalStub) RemoveDir(dirname string) error { 147 s.Stub.AddCall("RemoveDir", dirname) 148 if err := s.Stub.NextErr(); err != nil { 149 return errors.Trace(err) 150 } 151 152 return nil 153 } 154 155 func (s *internalStub) Move(target, source string) error { 156 s.Stub.AddCall("Move", target, source) 157 if err := s.Stub.NextErr(); err != nil { 158 return errors.Trace(err) 159 } 160 161 return nil 162 } 163 164 func (s *internalStub) Copy(target io.Writer, source io.Reader) error { 165 s.Stub.AddCall("Copy", target, source) 166 if err := s.Stub.NextErr(); err != nil { 167 return errors.Trace(err) 168 } 169 170 return nil 171 } 172 173 func (s *internalStub) Join(pth ...string) string { 174 s.Stub.AddCall("Join", pth) 175 s.Stub.NextErr() // Pop one off. 176 177 return path.Join(pth...) 178 }