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  }