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

package mocks

import (
	mock "github.com/stretchr/testify/mock"
	mangos "go.nanomsg.org/mangos/v3"
)

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

// Close provides a mock function with given fields:
func (_m *Socket) Close() 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
}

// Dial provides a mock function with given fields: addr
func (_m *Socket) Dial(addr string) error {
	ret := _m.Called(addr)

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

	return r0
}

// DialOptions provides a mock function with given fields: addr, options
func (_m *Socket) DialOptions(addr string, options map[string]interface{}) error {
	ret := _m.Called(addr, options)

	var r0 error
	if rf, ok := ret.Get(0).(func(string, map[string]interface{}) error); ok {
		r0 = rf(addr, options)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// GetOption provides a mock function with given fields: name
func (_m *Socket) GetOption(name string) (interface{}, error) {
	ret := _m.Called(name)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string) interface{}); ok {
		r0 = rf(name)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

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

	return r0, r1
}

// Info provides a mock function with given fields:
func (_m *Socket) Info() mangos.ProtocolInfo {
	ret := _m.Called()

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

	return r0
}

// Listen provides a mock function with given fields: addr
func (_m *Socket) Listen(addr string) error {
	ret := _m.Called(addr)

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

	return r0
}

// ListenOptions provides a mock function with given fields: addr, options
func (_m *Socket) ListenOptions(addr string, options map[string]interface{}) error {
	ret := _m.Called(addr, options)

	var r0 error
	if rf, ok := ret.Get(0).(func(string, map[string]interface{}) error); ok {
		r0 = rf(addr, options)
	} else {
		r0 = ret.Error(0)
	}

	return r0
}

// NewDialer provides a mock function with given fields: addr, options
func (_m *Socket) NewDialer(addr string, options map[string]interface{}) (mangos.Dialer, error) {
	ret := _m.Called(addr, options)

	var r0 mangos.Dialer
	if rf, ok := ret.Get(0).(func(string, map[string]interface{}) mangos.Dialer); ok {
		r0 = rf(addr, options)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(mangos.Dialer)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, map[string]interface{}) error); ok {
		r1 = rf(addr, options)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// NewListener provides a mock function with given fields: addr, options
func (_m *Socket) NewListener(addr string, options map[string]interface{}) (mangos.Listener, error) {
	ret := _m.Called(addr, options)

	var r0 mangos.Listener
	if rf, ok := ret.Get(0).(func(string, map[string]interface{}) mangos.Listener); ok {
		r0 = rf(addr, options)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(mangos.Listener)
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, map[string]interface{}) error); ok {
		r1 = rf(addr, options)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// OpenContext provides a mock function with given fields:
func (_m *Socket) OpenContext() (mangos.Context, error) {
	ret := _m.Called()

	var r0 mangos.Context
	if rf, ok := ret.Get(0).(func() mangos.Context); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(mangos.Context)
		}
	}

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

	return r0, r1
}

// Recv provides a mock function with given fields:
func (_m *Socket) Recv() ([]byte, error) {
	ret := _m.Called()

	var r0 []byte
	if rf, ok := ret.Get(0).(func() []byte); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).([]byte)
		}
	}

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

	return r0, r1
}

// RecvMsg provides a mock function with given fields:
func (_m *Socket) RecvMsg() (*mangos.Message, error) {
	ret := _m.Called()

	var r0 *mangos.Message
	if rf, ok := ret.Get(0).(func() *mangos.Message); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(*mangos.Message)
		}
	}

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

	return r0, r1
}

// Send provides a mock function with given fields: _a0
func (_m *Socket) Send(_a0 []byte) error {
	ret := _m.Called(_a0)

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

	return r0
}

// SendMsg provides a mock function with given fields: _a0
func (_m *Socket) SendMsg(_a0 *mangos.Message) error {
	ret := _m.Called(_a0)

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

	return r0
}

// SetOption provides a mock function with given fields: name, value
func (_m *Socket) SetOption(name string, value interface{}) error {
	ret := _m.Called(name, value)

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

	return r0
}

// SetPipeEventHook provides a mock function with given fields: _a0
func (_m *Socket) SetPipeEventHook(_a0 mangos.PipeEventHook) mangos.PipeEventHook {
	ret := _m.Called(_a0)

	var r0 mangos.PipeEventHook
	if rf, ok := ret.Get(0).(func(mangos.PipeEventHook) mangos.PipeEventHook); ok {
		r0 = rf(_a0)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(mangos.PipeEventHook)
		}
	}

	return r0
}
