package mock

import (
	"github.com/tidbcloud/config-service/sdk"
	"github.com/tidbcloud/config-service/sdk/api"
)

var _ sdk.Interface = new(MockClient)

// MockClient is a mocked config interface that always return the given output
type MockClient struct {
	ClusterConfigOutput *api.DescribeClusterConfigOutput
	BackupConfigOutput  *api.DescribeBRConfigOutput
	RestoreConfigOutput *api.DescribeBRConfigOutput
}

func New() *MockClient {
	return &MockClient{}
}

func (m *MockClient) DescribeClusterConfiguration(_ *api.DescribeClusterConfigInput) (*api.DescribeClusterConfigOutput, error) {
	return m.ClusterConfigOutput, nil
}

func (m *MockClient) DescribeBackupConfiguration(_ *api.DescribeBRConfigInput) (*api.DescribeBRConfigOutput, error) {
	return m.BackupConfigOutput, nil
}

func (m *MockClient) DescribeRestoreConfiguration(_ *api.DescribeBRConfigInput) (*api.DescribeBRConfigOutput, error) {
	return m.RestoreConfigOutput, nil
}
