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  }