// Code generated by mockery; DO NOT EDIT.
// github.com/vektra/mockery
// template: testify

package mocks

import (
	"context"
	"io"

	mock "github.com/stretchr/testify/mock"
)

// NewMockWriter creates a new instance of MockWriter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewMockWriter(t interface {
	mock.TestingT
	Cleanup(func())
}) *MockWriter {
	mock := &MockWriter{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}

// MockWriter is an autogenerated mock type for the Writer type
type MockWriter struct {
	mock.Mock
}

type MockWriter_Expecter struct {
	mock *mock.Mock
}

func (_m *MockWriter) EXPECT() *MockWriter_Expecter {
	return &MockWriter_Expecter{mock: &_m.Mock}
}

// GetType provides a mock function for the type MockWriter
func (_mock *MockWriter) GetType() string {
	ret := _mock.Called()

	if len(ret) == 0 {
		panic("no return value specified for GetType")
	}

	var r0 string
	if returnFunc, ok := ret.Get(0).(func() string); ok {
		r0 = returnFunc()
	} else {
		r0 = ret.Get(0).(string)
	}
	return r0
}

// MockWriter_GetType_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetType'
type MockWriter_GetType_Call struct {
	*mock.Call
}

// GetType is a helper method to define mock.On call
func (_e *MockWriter_Expecter) GetType() *MockWriter_GetType_Call {
	return &MockWriter_GetType_Call{Call: _e.mock.On("GetType")}
}

func (_c *MockWriter_GetType_Call) Run(run func()) *MockWriter_GetType_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run()
	})
	return _c
}

func (_c *MockWriter_GetType_Call) Return(s string) *MockWriter_GetType_Call {
	_c.Call.Return(s)
	return _c
}

func (_c *MockWriter_GetType_Call) RunAndReturn(run func() string) *MockWriter_GetType_Call {
	_c.Call.Return(run)
	return _c
}

// NewWriter provides a mock function for the type MockWriter
func (_mock *MockWriter) NewWriter(ctx context.Context, filename string) (io.WriteCloser, error) {
	ret := _mock.Called(ctx, filename)

	if len(ret) == 0 {
		panic("no return value specified for NewWriter")
	}

	var r0 io.WriteCloser
	var r1 error
	if returnFunc, ok := ret.Get(0).(func(context.Context, string) (io.WriteCloser, error)); ok {
		return returnFunc(ctx, filename)
	}
	if returnFunc, ok := ret.Get(0).(func(context.Context, string) io.WriteCloser); ok {
		r0 = returnFunc(ctx, filename)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(io.WriteCloser)
		}
	}
	if returnFunc, ok := ret.Get(1).(func(context.Context, string) error); ok {
		r1 = returnFunc(ctx, filename)
	} else {
		r1 = ret.Error(1)
	}
	return r0, r1
}

// MockWriter_NewWriter_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'NewWriter'
type MockWriter_NewWriter_Call struct {
	*mock.Call
}

// NewWriter is a helper method to define mock.On call
//   - ctx
//   - filename
func (_e *MockWriter_Expecter) NewWriter(ctx interface{}, filename interface{}) *MockWriter_NewWriter_Call {
	return &MockWriter_NewWriter_Call{Call: _e.mock.On("NewWriter", ctx, filename)}
}

func (_c *MockWriter_NewWriter_Call) Run(run func(ctx context.Context, filename string)) *MockWriter_NewWriter_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run(args[0].(context.Context), args[1].(string))
	})
	return _c
}

func (_c *MockWriter_NewWriter_Call) Return(writeCloser io.WriteCloser, err error) *MockWriter_NewWriter_Call {
	_c.Call.Return(writeCloser, err)
	return _c
}

func (_c *MockWriter_NewWriter_Call) RunAndReturn(run func(ctx context.Context, filename string) (io.WriteCloser, error)) *MockWriter_NewWriter_Call {
	_c.Call.Return(run)
	return _c
}

// Remove provides a mock function for the type MockWriter
func (_mock *MockWriter) Remove(ctx context.Context, path string) error {
	ret := _mock.Called(ctx, path)

	if len(ret) == 0 {
		panic("no return value specified for Remove")
	}

	var r0 error
	if returnFunc, ok := ret.Get(0).(func(context.Context, string) error); ok {
		r0 = returnFunc(ctx, path)
	} else {
		r0 = ret.Error(0)
	}
	return r0
}

// MockWriter_Remove_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'Remove'
type MockWriter_Remove_Call struct {
	*mock.Call
}

// Remove is a helper method to define mock.On call
//   - ctx
//   - path
func (_e *MockWriter_Expecter) Remove(ctx interface{}, path interface{}) *MockWriter_Remove_Call {
	return &MockWriter_Remove_Call{Call: _e.mock.On("Remove", ctx, path)}
}

func (_c *MockWriter_Remove_Call) Run(run func(ctx context.Context, path string)) *MockWriter_Remove_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run(args[0].(context.Context), args[1].(string))
	})
	return _c
}

func (_c *MockWriter_Remove_Call) Return(err error) *MockWriter_Remove_Call {
	_c.Call.Return(err)
	return _c
}

func (_c *MockWriter_Remove_Call) RunAndReturn(run func(ctx context.Context, path string) error) *MockWriter_Remove_Call {
	_c.Call.Return(run)
	return _c
}

// RemoveFiles provides a mock function for the type MockWriter
func (_mock *MockWriter) RemoveFiles(ctx context.Context) error {
	ret := _mock.Called(ctx)

	if len(ret) == 0 {
		panic("no return value specified for RemoveFiles")
	}

	var r0 error
	if returnFunc, ok := ret.Get(0).(func(context.Context) error); ok {
		r0 = returnFunc(ctx)
	} else {
		r0 = ret.Error(0)
	}
	return r0
}

// MockWriter_RemoveFiles_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'RemoveFiles'
type MockWriter_RemoveFiles_Call struct {
	*mock.Call
}

// RemoveFiles is a helper method to define mock.On call
//   - ctx
func (_e *MockWriter_Expecter) RemoveFiles(ctx interface{}) *MockWriter_RemoveFiles_Call {
	return &MockWriter_RemoveFiles_Call{Call: _e.mock.On("RemoveFiles", ctx)}
}

func (_c *MockWriter_RemoveFiles_Call) Run(run func(ctx context.Context)) *MockWriter_RemoveFiles_Call {
	_c.Call.Run(func(args mock.Arguments) {
		run(args[0].(context.Context))
	})
	return _c
}

func (_c *MockWriter_RemoveFiles_Call) Return(err error) *MockWriter_RemoveFiles_Call {
	_c.Call.Return(err)
	return _c
}

func (_c *MockWriter_RemoveFiles_Call) RunAndReturn(run func(ctx context.Context) error) *MockWriter_RemoveFiles_Call {
	_c.Call.Return(run)
	return _c
}
