// Code generated by mockery v2.14.0. DO NOT EDIT.

package mocks

import (
	context "context"
	"github.com/sirupsen/logrus"

	blob "github.com/kopia/kopia/repo/blob"

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

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

// Connect provides a mock function with given fields: ctx, isCreate
func (_m *Store) Connect(ctx context.Context, isCreate bool, logger logrus.FieldLogger) (blob.Storage, error) {
	ret := _m.Called(ctx, isCreate)

	var r0 blob.Storage
	if rf, ok := ret.Get(0).(func(context.Context, bool) blob.Storage); ok {
		r0 = rf(ctx, isCreate)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(blob.Storage)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, bool) error); ok {
		r1 = rf(ctx, isCreate)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Setup provides a mock function with given fields: ctx, flags
func (_m *Store) Setup(ctx context.Context, flags map[string]string, logger logrus.FieldLogger) error {
	ret := _m.Called(ctx, flags)

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, map[string]string) error); ok {
		r0 = rf(ctx, flags)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

type mockConstructorTestingTNewStore interface {
	mock.TestingT
	Cleanup(func())
}

// NewStore creates a new instance of Store. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
func NewStore(t mockConstructorTestingTNewStore) *Store {
	mock := &Store{}
	mock.Mock.Test(t)

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

	return mock
}
