// Code generated by mockery v1.0.0. DO NOT EDIT.

package mocks

import common "github.com/anycable/anycable-go/common"
import mock "github.com/stretchr/testify/mock"

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

// Authenticate provides a mock function with given fields: sid, env
func (_m *Controller) Authenticate(sid string, env *common.SessionEnv) (*common.ConnectResult, error) {
	ret := _m.Called(sid, env)

	var r0 *common.ConnectResult
	if rf, ok := ret.Get(0).(func(string, *common.SessionEnv) *common.ConnectResult); ok {
		r0 = rf(sid, env)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*common.ConnectResult)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, *common.SessionEnv) error); ok {
		r1 = rf(sid, env)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Disconnect provides a mock function with given fields: sid, env, id, subscriptions
func (_m *Controller) Disconnect(sid string, env *common.SessionEnv, id string, subscriptions []string) error {
	ret := _m.Called(sid, env, id, subscriptions)

	var r0 error
	if rf, ok := ret.Get(0).(func(string, *common.SessionEnv, string, []string) error); ok {
		r0 = rf(sid, env, id, subscriptions)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// Perform provides a mock function with given fields: sid, env, id, channel, data
func (_m *Controller) Perform(sid string, env *common.SessionEnv, id string, channel string, data string) (*common.CommandResult, error) {
	ret := _m.Called(sid, env, id, channel, data)

	var r0 *common.CommandResult
	if rf, ok := ret.Get(0).(func(string, *common.SessionEnv, string, string, string) *common.CommandResult); ok {
		r0 = rf(sid, env, id, channel, data)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*common.CommandResult)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, *common.SessionEnv, string, string, string) error); ok {
		r1 = rf(sid, env, id, channel, data)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Shutdown provides a mock function with given fields:
func (_m *Controller) Shutdown() error {
	ret := _m.Called()

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

	return r0
}

// Start provides a mock function with given fields:
func (_m *Controller) Start() error {
	ret := _m.Called()

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

	return r0
}

// Subscribe provides a mock function with given fields: sid, env, id, channel
func (_m *Controller) Subscribe(sid string, env *common.SessionEnv, id string, channel string) (*common.CommandResult, error) {
	ret := _m.Called(sid, env, id, channel)

	var r0 *common.CommandResult
	if rf, ok := ret.Get(0).(func(string, *common.SessionEnv, string, string) *common.CommandResult); ok {
		r0 = rf(sid, env, id, channel)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*common.CommandResult)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, *common.SessionEnv, string, string) error); ok {
		r1 = rf(sid, env, id, channel)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Unsubscribe provides a mock function with given fields: sid, env, id, channel
func (_m *Controller) Unsubscribe(sid string, env *common.SessionEnv, id string, channel string) (*common.CommandResult, error) {
	ret := _m.Called(sid, env, id, channel)

	var r0 *common.CommandResult
	if rf, ok := ret.Get(0).(func(string, *common.SessionEnv, string, string) *common.CommandResult); ok {
		r0 = rf(sid, env, id, channel)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*common.CommandResult)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, *common.SessionEnv, string, string) error); ok {
		r1 = rf(sid, env, id, channel)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}
