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

package mocks

import (
	azsecrets "github.com/Azure/azure-sdk-for-go/sdk/keyvault/azsecrets"

	context "context"

	mock "github.com/stretchr/testify/mock"
)

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

// DeleteSecret provides a mock function with given fields: ctx, secretName, options
func (_m *SecretsRW) DeleteSecret(ctx context.Context, secretName string, options *azsecrets.DeleteSecretOptions) (azsecrets.DeleteSecretResponse, error) {
	ret := _m.Called(ctx, secretName, options)

	var r0 azsecrets.DeleteSecretResponse
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, *azsecrets.DeleteSecretOptions) (azsecrets.DeleteSecretResponse, error)); ok {
		return rf(ctx, secretName, options)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, *azsecrets.DeleteSecretOptions) azsecrets.DeleteSecretResponse); ok {
		r0 = rf(ctx, secretName, options)
	} else {
		r0 = ret.Get(0).(azsecrets.DeleteSecretResponse)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, *azsecrets.DeleteSecretOptions) error); ok {
		r1 = rf(ctx, secretName, options)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetSecret provides a mock function with given fields: ctx, secretName, version, options
func (_m *SecretsRW) GetSecret(ctx context.Context, secretName string, version string, options *azsecrets.GetSecretOptions) (azsecrets.GetSecretResponse, error) {
	ret := _m.Called(ctx, secretName, version, options)

	var r0 azsecrets.GetSecretResponse
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, string, *azsecrets.GetSecretOptions) (azsecrets.GetSecretResponse, error)); ok {
		return rf(ctx, secretName, version, options)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, string, *azsecrets.GetSecretOptions) azsecrets.GetSecretResponse); ok {
		r0 = rf(ctx, secretName, version, options)
	} else {
		r0 = ret.Get(0).(azsecrets.GetSecretResponse)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, string, *azsecrets.GetSecretOptions) error); ok {
		r1 = rf(ctx, secretName, version, options)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// SetSecret provides a mock function with given fields: ctx, secretName, params, options
func (_m *SecretsRW) SetSecret(ctx context.Context, secretName string, params azsecrets.SetSecretParameters, options *azsecrets.SetSecretOptions) (azsecrets.SetSecretResponse, error) {
	ret := _m.Called(ctx, secretName, params, options)

	var r0 azsecrets.SetSecretResponse
	var r1 error
	if rf, ok := ret.Get(0).(func(context.Context, string, azsecrets.SetSecretParameters, *azsecrets.SetSecretOptions) (azsecrets.SetSecretResponse, error)); ok {
		return rf(ctx, secretName, params, options)
	}
	if rf, ok := ret.Get(0).(func(context.Context, string, azsecrets.SetSecretParameters, *azsecrets.SetSecretOptions) azsecrets.SetSecretResponse); ok {
		r0 = rf(ctx, secretName, params, options)
	} else {
		r0 = ret.Get(0).(azsecrets.SetSecretResponse)
	}

	if rf, ok := ret.Get(1).(func(context.Context, string, azsecrets.SetSecretParameters, *azsecrets.SetSecretOptions) error); ok {
		r1 = rf(ctx, secretName, params, options)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

type mockConstructorTestingTNewSecretsRW interface {
	mock.TestingT
	Cleanup(func())
}

// NewSecretsRW creates a new instance of SecretsRW. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
func NewSecretsRW(t mockConstructorTestingTNewSecretsRW) *SecretsRW {
	mock := &SecretsRW{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
