// Code generated by MockGen. DO NOT EDIT.
// Source: client.go
//
// Generated by this command:
//
//	mockgen-v0.6.0 -typed -source=client.go -destination=mock_client.go -package cincinnati Client
//

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

import (
	context "context"
	url "net/url"
	reflect "reflect"

	semver "github.com/blang/semver/v4"
	v1 "github.com/openshift/api/config/v1"
	gomock "go.uber.org/mock/gomock"
)

// MockClient is a mock of Client interface.
type MockClient struct {
	ctrl     *gomock.Controller
	recorder *MockClientMockRecorder
	isgomock struct{}
}

// MockClientMockRecorder is the mock recorder for MockClient.
type MockClientMockRecorder struct {
	mock *MockClient
}

// NewMockClient creates a new mock instance.
func NewMockClient(ctrl *gomock.Controller) *MockClient {
	mock := &MockClient{ctrl: ctrl}
	mock.recorder = &MockClientMockRecorder{mock}
	return mock
}

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

// GetUpdates mocks base method.
func (m *MockClient) GetUpdates(ctx context.Context, uri *url.URL, desiredArch, currentArch, channel string, version semver.Version) (v1.Release, []v1.Release, []v1.ConditionalUpdate, error) {
	m.ctrl.T.Helper()
	ret := m.ctrl.Call(m, "GetUpdates", ctx, uri, desiredArch, currentArch, channel, version)
	ret0, _ := ret[0].(v1.Release)
	ret1, _ := ret[1].([]v1.Release)
	ret2, _ := ret[2].([]v1.ConditionalUpdate)
	ret3, _ := ret[3].(error)
	return ret0, ret1, ret2, ret3
}

// GetUpdates indicates an expected call of GetUpdates.
func (mr *MockClientMockRecorder) GetUpdates(ctx, uri, desiredArch, currentArch, channel, version any) *MockClientGetUpdatesCall {
	mr.mock.ctrl.T.Helper()
	call := mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetUpdates", reflect.TypeOf((*MockClient)(nil).GetUpdates), ctx, uri, desiredArch, currentArch, channel, version)
	return &MockClientGetUpdatesCall{Call: call}
}

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

// Return rewrite *gomock.Call.Return
func (c *MockClientGetUpdatesCall) Return(arg0 v1.Release, arg1 []v1.Release, arg2 []v1.ConditionalUpdate, arg3 error) *MockClientGetUpdatesCall {
	c.Call = c.Call.Return(arg0, arg1, arg2, arg3)
	return c
}

// Do rewrite *gomock.Call.Do
func (c *MockClientGetUpdatesCall) Do(f func(context.Context, *url.URL, string, string, string, semver.Version) (v1.Release, []v1.Release, []v1.ConditionalUpdate, error)) *MockClientGetUpdatesCall {
	c.Call = c.Call.Do(f)
	return c
}

// DoAndReturn rewrite *gomock.Call.DoAndReturn
func (c *MockClientGetUpdatesCall) DoAndReturn(f func(context.Context, *url.URL, string, string, string, semver.Version) (v1.Release, []v1.Release, []v1.ConditionalUpdate, error)) *MockClientGetUpdatesCall {
	c.Call = c.Call.DoAndReturn(f)
	return c
}
