// Code generated by MockGen. DO NOT EDIT.
// Source: github.com/mymmrac/telego/telegoapi (interfaces: RequestConstructor)
//
// Generated by this command:
//
//	mockgen -typed -package mock -destination=mock/request_constructor.go github.com/mymmrac/telego/telegoapi RequestConstructor
//

// Package mock is a generated GoMock package.
package mock

import (
	reflect "reflect"

	telegoapi "github.com/mymmrac/telego/telegoapi"
	gomock "go.uber.org/mock/gomock"
)

// MockRequestConstructor is a mock of RequestConstructor interface.
type MockRequestConstructor struct {
	ctrl     *gomock.Controller
	recorder *MockRequestConstructorMockRecorder
	isgomock struct{}
}

// MockRequestConstructorMockRecorder is the mock recorder for MockRequestConstructor.
type MockRequestConstructorMockRecorder struct {
	mock *MockRequestConstructor
}

// NewMockRequestConstructor creates a new mock instance.
func NewMockRequestConstructor(ctrl *gomock.Controller) *MockRequestConstructor {
	mock := &MockRequestConstructor{ctrl: ctrl}
	mock.recorder = &MockRequestConstructorMockRecorder{mock}
	return mock
}

// EXPECT returns an object that allows the caller to indicate expected use.
func (m *MockRequestConstructor) EXPECT() *MockRequestConstructorMockRecorder {
	return m.recorder
}

// JSONRequest mocks base method.
func (m *MockRequestConstructor) JSONRequest(parameters any) (*telegoapi.RequestData, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "JSONRequest", parameters)
	ret0, _ := ret[0].(*telegoapi.RequestData)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// JSONRequest indicates an expected call of JSONRequest.
func (mr *MockRequestConstructorMockRecorder) JSONRequest(parameters any) *MockRequestConstructorJSONRequestCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "JSONRequest", reflect.TypeOf((*MockRequestConstructor)(nil).JSONRequest), parameters)
	return &MockRequestConstructorJSONRequestCall{Call: call}
}

// MockRequestConstructorJSONRequestCall wrap *gomock.Call
type MockRequestConstructorJSONRequestCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockRequestConstructorJSONRequestCall) Return(arg0 *telegoapi.RequestData, arg1 error) *MockRequestConstructorJSONRequestCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockRequestConstructorJSONRequestCall) Do(f func(any) (*telegoapi.RequestData, error)) *MockRequestConstructorJSONRequestCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockRequestConstructorJSONRequestCall) DoAndReturn(f func(any) (*telegoapi.RequestData, error)) *MockRequestConstructorJSONRequestCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}

// MultipartRequest mocks base method.
func (m *MockRequestConstructor) MultipartRequest(parameters map[string]string, filesParameters map[string]telegoapi.NamedReader) (*telegoapi.RequestData, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "MultipartRequest", parameters, filesParameters)
	ret0, _ := ret[0].(*telegoapi.RequestData)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// MultipartRequest indicates an expected call of MultipartRequest.
func (mr *MockRequestConstructorMockRecorder) MultipartRequest(parameters, filesParameters any) *MockRequestConstructorMultipartRequestCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "MultipartRequest", reflect.TypeOf((*MockRequestConstructor)(nil).MultipartRequest), parameters, filesParameters)
	return &MockRequestConstructorMultipartRequestCall{Call: call}
}

// MockRequestConstructorMultipartRequestCall wrap *gomock.Call
type MockRequestConstructorMultipartRequestCall struct {
	*gomock.Call
}

// Return rewrite *gomock.Call.Return
func (c *MockRequestConstructorMultipartRequestCall) Return(arg0 *telegoapi.RequestData, arg1 error) *MockRequestConstructorMultipartRequestCall {
	c.Call = c.Call.Return(arg0, arg1)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockRequestConstructorMultipartRequestCall) Do(f func(map[string]string, map[string]telegoapi.NamedReader) (*telegoapi.RequestData, error)) *MockRequestConstructorMultipartRequestCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockRequestConstructorMultipartRequestCall) DoAndReturn(f func(map[string]string, map[string]telegoapi.NamedReader) (*telegoapi.RequestData, error)) *MockRequestConstructorMultipartRequestCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
