github.com/niedbalski/juju@v0.0.0-20190215020005-8ff100488e47/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/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 ReturnNewChecker internal.ContentChecker 26 ReturnCreateWriter io.WriteCloser 27 ReturnFingerprintMatches bool 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) NewChecker(content internal.Content) internal.ContentChecker { 90 s.Stub.AddCall("NewChecker", content) 91 s.Stub.NextErr() // Pop one off. 92 93 return s.ReturnNewChecker 94 } 95 96 func (s *internalStub) WriteContent(target io.Writer, content internal.Content) error { 97 s.Stub.AddCall("WriteContent", target, content) 98 if err := s.Stub.NextErr(); err != nil { 99 return errors.Trace(err) 100 } 101 102 return nil 103 } 104 105 func (s *internalStub) CloseAndLog(closer io.Closer, label string) { 106 s.Stub.AddCall("CloseAndLog", closer, label) 107 s.Stub.NextErr() // Pop one off. 108 } 109 110 func (s *internalStub) MkdirAll(dirname string) error { 111 s.Stub.AddCall("MkdirAll", dirname) 112 if err := s.Stub.NextErr(); err != nil { 113 return errors.Trace(err) 114 } 115 116 return nil 117 } 118 119 func (s *internalStub) CreateWriter(filename string) (io.WriteCloser, error) { 120 s.Stub.AddCall("CreateWriter", filename) 121 if err := s.Stub.NextErr(); err != nil { 122 return nil, errors.Trace(err) 123 } 124 125 return s.ReturnCreateWriter, nil 126 } 127 128 func (s *internalStub) RemoveDir(dirname string) error { 129 s.Stub.AddCall("RemoveDir", dirname) 130 if err := s.Stub.NextErr(); err != nil { 131 return errors.Trace(err) 132 } 133 134 return nil 135 } 136 137 func (s *internalStub) Move(target, source string) error { 138 s.Stub.AddCall("Move", target, source) 139 if err := s.Stub.NextErr(); err != nil { 140 return errors.Trace(err) 141 } 142 143 return nil 144 } 145 146 func (s *internalStub) Copy(target io.Writer, source io.Reader) error { 147 s.Stub.AddCall("Copy", target, source) 148 if err := s.Stub.NextErr(); err != nil { 149 return errors.Trace(err) 150 } 151 152 return nil 153 } 154 func (s *internalStub) FingerprintMatches(filename string, fp charmresource.Fingerprint) (bool, error) { 155 s.Stub.AddCall("FingerprintMatches", filename, fp) 156 if err := s.Stub.NextErr(); err != nil { 157 return false, errors.Trace(err) 158 } 159 160 return s.ReturnFingerprintMatches, nil 161 } 162 163 func (s *internalStub) Join(pth ...string) string { 164 s.Stub.AddCall("Join", pth) 165 s.Stub.NextErr() // Pop one off. 166 167 return path.Join(pth...) 168 }