// Code generated by MockGen. DO NOT EDIT.
// Source: service.go

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

import (
	context "context"
	reflect "reflect"

	whatsapp "github.com/authgear/authgear-server/pkg/lib/infra/whatsapp"
	gomock "github.com/golang/mock/gomock"
)

// MockServiceCloudAPIClient is a mock of ServiceCloudAPIClient interface.
type MockServiceCloudAPIClient struct {
	ctrl     *gomock.Controller
	recorder *MockServiceCloudAPIClientMockRecorder
}

// MockServiceCloudAPIClientMockRecorder is the mock recorder for MockServiceCloudAPIClient.
type MockServiceCloudAPIClientMockRecorder struct {
	mock *MockServiceCloudAPIClient
}

// NewMockServiceCloudAPIClient creates a new mock instance.
func NewMockServiceCloudAPIClient(ctrl *gomock.Controller) *MockServiceCloudAPIClient {
	mock := &MockServiceCloudAPIClient{ctrl: ctrl}
	mock.recorder = &MockServiceCloudAPIClientMockRecorder{mock}
	return mock
}

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

// GetLanguages mocks base method.
func (m *MockServiceCloudAPIClient) GetLanguages() []string {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetLanguages")
	ret0, _ := ret[0].([]string)
	return ret0
}

// GetLanguages indicates an expected call of GetLanguages.
func (mr *MockServiceCloudAPIClientMockRecorder) GetLanguages() *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetLanguages", reflect.TypeOf((*MockServiceCloudAPIClient)(nil).GetLanguages))
}

// SendAuthenticationOTP mocks base method.
func (m *MockServiceCloudAPIClient) SendAuthenticationOTP(ctx context.Context, opts *whatsapp.SendAuthenticationOTPOptions, lang string) (*whatsapp.CloudAPISendAuthenticationOTPResult, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SendAuthenticationOTP", ctx, opts, lang)
	ret0, _ := ret[0].(*whatsapp.CloudAPISendAuthenticationOTPResult)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// SendAuthenticationOTP indicates an expected call of SendAuthenticationOTP.
func (mr *MockServiceCloudAPIClientMockRecorder) SendAuthenticationOTP(ctx, opts, lang interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SendAuthenticationOTP", reflect.TypeOf((*MockServiceCloudAPIClient)(nil).SendAuthenticationOTP), ctx, opts, lang)
}

// MockServiceMessageStore is a mock of ServiceMessageStore interface.
type MockServiceMessageStore struct {
	ctrl     *gomock.Controller
	recorder *MockServiceMessageStoreMockRecorder
}

// MockServiceMessageStoreMockRecorder is the mock recorder for MockServiceMessageStore.
type MockServiceMessageStoreMockRecorder struct {
	mock *MockServiceMessageStore
}

// NewMockServiceMessageStore creates a new mock instance.
func NewMockServiceMessageStore(ctrl *gomock.Controller) *MockServiceMessageStore {
	mock := &MockServiceMessageStore{ctrl: ctrl}
	mock.recorder = &MockServiceMessageStoreMockRecorder{mock}
	return mock
}

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

// GetMessageStatus mocks base method.
func (m *MockServiceMessageStore) GetMessageStatus(ctx context.Context, messageID string) (*whatsapp.WhatsappMessageStatusData, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetMessageStatus", ctx, messageID)
	ret0, _ := ret[0].(*whatsapp.WhatsappMessageStatusData)
	ret1, _ := ret[1].(error)
	return ret0, ret1
}

// GetMessageStatus indicates an expected call of GetMessageStatus.
func (mr *MockServiceMessageStoreMockRecorder) GetMessageStatus(ctx, messageID interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetMessageStatus", reflect.TypeOf((*MockServiceMessageStore)(nil).GetMessageStatus), ctx, messageID)
}

// SetMessageStatusIfNotExist mocks base method.
func (m *MockServiceMessageStore) SetMessageStatusIfNotExist(ctx context.Context, messageID string, status *whatsapp.WhatsappMessageStatusData) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "SetMessageStatusIfNotExist", ctx, messageID, status)
	ret0, _ := ret[0].(error)
	return ret0
}

// SetMessageStatusIfNotExist indicates an expected call of SetMessageStatusIfNotExist.
func (mr *MockServiceMessageStoreMockRecorder) SetMessageStatusIfNotExist(ctx, messageID, status interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "SetMessageStatusIfNotExist", reflect.TypeOf((*MockServiceMessageStore)(nil).SetMessageStatusIfNotExist), ctx, messageID, status)
}

// UpdateMessageStatus mocks base method.
func (m *MockServiceMessageStore) UpdateMessageStatus(ctx context.Context, messageID string, status *whatsapp.WhatsappMessageStatusData) error {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "UpdateMessageStatus", ctx, messageID, status)
	ret0, _ := ret[0].(error)
	return ret0
}

// UpdateMessageStatus indicates an expected call of UpdateMessageStatus.
func (mr *MockServiceMessageStoreMockRecorder) UpdateMessageStatus(ctx, messageID, status interface{}) *gomock.Call {
	mr.mock.ctrl.T.Helper()
	return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateMessageStatus", reflect.TypeOf((*MockServiceMessageStore)(nil).UpdateMessageStatus), ctx, messageID, status)
}
