package configmanager

import (
	"context"

	"github.com/tidbcloud/infra-provider/pkg/gitops-sdk/utils"
)

type mockPDClient struct {
	MP map[string]interface{}
}

func NewMockPDClient(m map[string]interface{}) DynamicPDClient {
	return &mockPDClient{MP: m}
}

func (c *mockPDClient) GetConfig(ctx context.Context) (map[string]interface{}, error) {
	return c.MP, nil
}

func (c *mockPDClient) GetStoreByID(ctx context.Context, id uint64) (*StoreInfo, error) {
	return nil, nil
}

func (c *mockPDClient) GetStores(ctx context.Context) (StoresInfo, error) {
	return StoresInfo{}, nil
}

func (c *mockPDClient) PutConfig(ctx context.Context, conf map[string]interface{}) error {
	c.MP = utils.MergeMaps(c.MP, conf)
	return nil
}

func (c *mockPDClient) HTTPGet(ctx context.Context, path string) ([]byte, error) {
	return nil, nil
}

func (c *mockPDClient) HTTPPost(ctx context.Context, path string, body []byte) error {
	return nil
}

func (c *mockPDClient) HTTPDelete(ctx context.Context, path string, body []byte) error {
	return nil
}

func (c *mockPDClient) CancelDeleteStore(ctx context.Context, storeID string) error {
	return nil
}

func (c *mockPDClient) RemoveEvictLeaderScheduler(ctx context.Context) error {
	return nil
}

func (c *mockPDClient) GetEvictLeaderSchedulers(ctx context.Context) ([]string, error) {
	return nil, nil
}
