| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 | package internalimport (	"io"	"github.com/pkg/errors"	"gopkg.in/src-d/go-git.v4/plumbing"	"gopkg.in/src-d/go-git.v4/plumbing/object")type dummyIO struct {}func (dummyIO) Read(p []byte) (int, error) {	return 0, io.EOF}func (dummyIO) Write(p []byte) (int, error) {	return len(p), nil}func (dummyIO) Close() error {	return nil}type dummyEncodedObject struct {	FakeHash plumbing.Hash	Fails    bool}func (obj dummyEncodedObject) Hash() plumbing.Hash {	return obj.FakeHash}func (obj dummyEncodedObject) Type() plumbing.ObjectType {	return plumbing.BlobObject}func (obj dummyEncodedObject) SetType(plumbing.ObjectType) {}func (obj dummyEncodedObject) Size() int64 {	return 0}func (obj dummyEncodedObject) SetSize(int64) {}func (obj dummyEncodedObject) Reader() (io.ReadCloser, error) {	if !obj.Fails {		return dummyIO{}, nil	}	return nil, errors.New("dummy failure")}func (obj dummyEncodedObject) Writer() (io.WriteCloser, error) {	if !obj.Fails {		return dummyIO{}, nil	}	return nil, errors.New("dummy failure")}// CreateDummyBlob constructs a fake object.Blob with empty contents.// Optionally returns an error if read or written.func CreateDummyBlob(hash plumbing.Hash, fails ...bool) (*object.Blob, error) {	if len(fails) > 1 {		panic("invalid usage of CreateDummyBlob() - this is a bug")	}	var realFails bool	if len(fails) == 1 {		realFails = fails[0]	}	return object.DecodeBlob(dummyEncodedObject{FakeHash: hash, Fails: realFails})}
 |