github.com/wallyworld/juju@v0.0.0-20161013125918-6cf1bc9d917a/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  }