// Code generated by mockery 2.9.0. DO NOT EDIT.

package logic

import (
	context "context"

	lib "code.justin.tv/live/autohost/lib"
	hosting "code.justin.tv/live/autohost/rpc/hosting"

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

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

// AddList provides a mock function with given fields: ctx, callerID, channelID, userIDsToAdd
func (_m *MockLogic) AddList(ctx context.Context, callerID string, channelID string, userIDsToAdd []string) ([]string, error) {
	ret := _m.Called(ctx, callerID, channelID, userIDsToAdd)

	var r0 []string
	if rf, ok := ret.Get(0).(func(context.Context, string, string, []string) []string); ok {
		r0 = rf(ctx, callerID, channelID, userIDsToAdd)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, string, string, []string) error); ok {
		r1 = rf(ctx, callerID, channelID, userIDsToAdd)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetEndorsedChannels provides a mock function with given fields: ctx, userContext, targetChannelID, limit
func (_m *MockLogic) GetEndorsedChannels(ctx context.Context, userContext *hosting.UserContext, targetChannelID string, limit int) ([]*hosting.EndorsedChannel, error) {
	ret := _m.Called(ctx, userContext, targetChannelID, limit)

	var r0 []*hosting.EndorsedChannel
	if rf, ok := ret.Get(0).(func(context.Context, *hosting.UserContext, string, int) []*hosting.EndorsedChannel); ok {
		r0 = rf(ctx, userContext, targetChannelID, limit)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]*hosting.EndorsedChannel)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, *hosting.UserContext, string, int) error); ok {
		r1 = rf(ctx, userContext, targetChannelID, limit)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetList provides a mock function with given fields: ctx, user
func (_m *MockLogic) GetList(ctx context.Context, user string) ([]string, error) {
	ret := _m.Called(ctx, user)

	var r0 []string
	if rf, ok := ret.Get(0).(func(context.Context, string) []string); ok {
		r0 = rf(ctx, user)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

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

	return r0, r1
}

// GetSettings provides a mock function with given fields: ctx, callerID, userID
func (_m *MockLogic) GetSettings(ctx context.Context, callerID string, userID string) (*lib.Settings, error) {
	ret := _m.Called(ctx, callerID, userID)

	var r0 *lib.Settings
	if rf, ok := ret.Get(0).(func(context.Context, string, string) *lib.Settings); ok {
		r0 = rf(ctx, callerID, userID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*lib.Settings)
		}
	}

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

	return r0, r1
}

// HostTarget provides a mock function with given fields: ctx, userID, channelID, targetID
func (_m *MockLogic) HostTarget(ctx context.Context, userID string, channelID string, targetID string) error {
	ret := _m.Called(ctx, userID, channelID, targetID)

	var r0 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string, string) error); ok {
		r0 = rf(ctx, userID, channelID, targetID)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// OnUserDestroyEventReceived provides a mock function with given fields: ctx, userID
func (_m *MockLogic) OnUserDestroyEventReceived(ctx context.Context, userID string) error {
	ret := _m.Called(ctx, userID)

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

	return r0
}

// RemoveList provides a mock function with given fields: ctx, callerID, channelID, userIDsToRemove
func (_m *MockLogic) RemoveList(ctx context.Context, callerID string, channelID string, userIDsToRemove []string) ([]string, error) {
	ret := _m.Called(ctx, callerID, channelID, userIDsToRemove)

	var r0 []string
	if rf, ok := ret.Get(0).(func(context.Context, string, string, []string) []string); ok {
		r0 = rf(ctx, callerID, channelID, userIDsToRemove)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, string, string, []string) error); ok {
		r1 = rf(ctx, callerID, channelID, userIDsToRemove)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// SetList provides a mock function with given fields: ctx, callerID, userID, list
func (_m *MockLogic) SetList(ctx context.Context, callerID string, userID string, list []string) ([]string, error) {
	ret := _m.Called(ctx, callerID, userID, list)

	var r0 []string
	if rf, ok := ret.Get(0).(func(context.Context, string, string, []string) []string); ok {
		r0 = rf(ctx, callerID, userID, list)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]string)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, string, string, []string) error); ok {
		r1 = rf(ctx, callerID, userID, list)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Unhost provides a mock function with given fields: ctx, userID, channelID
func (_m *MockLogic) Unhost(ctx context.Context, userID string, channelID string) error {
	ret := _m.Called(ctx, userID, channelID)

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

	return r0
}

// UpdateSettings provides a mock function with given fields: ctx, callerID, userID, settings
func (_m *MockLogic) UpdateSettings(ctx context.Context, callerID string, userID string, settings *lib.UpdateSettingsInput) (*lib.Settings, error) {
	ret := _m.Called(ctx, callerID, userID, settings)

	var r0 *lib.Settings
	if rf, ok := ret.Get(0).(func(context.Context, string, string, *lib.UpdateSettingsInput) *lib.Settings); ok {
		r0 = rf(ctx, callerID, userID, settings)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*lib.Settings)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(context.Context, string, string, *lib.UpdateSettingsInput) error); ok {
		r1 = rf(ctx, callerID, userID, settings)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}
