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