package grpcli

import (
	"testing"

	"github.com/stretchr/testify/assert"
	global_commonv1 "github.com/tidbcloud/tidb-management-service/api/spec/global/common/v1"
)

func TestRegionName2ID(t *testing.T) {
	testcases := []struct {
		regionName       string
		expectedRegionID global_commonv1.Region_Name
	}{
		{
			regionName:       "",
			expectedRegionID: global_commonv1.Region_NAME_UNSPECIFIED,
		},
		{
			regionName:       "abc",
			expectedRegionID: global_commonv1.Region_NAME_UNSPECIFIED,
		},
		{
			regionName:       "us-west-2",
			expectedRegionID: global_commonv1.Region_AWS_US_WEST_2,
		},
		{
			regionName:       "us-east-1",
			expectedRegionID: global_commonv1.Region_AWS_US_EAST_1,
		},
		{
			regionName:       "asia-east1",
			expectedRegionID: global_commonv1.Region_GCP_ASIA_EAST1,
		},
		{
			regionName:       "us-central1",
			expectedRegionID: global_commonv1.Region_GCP_US_CENTRAL1,
		},
		{
			regionName:       "eastus",
			expectedRegionID: global_commonv1.Region_AZURE_EASTUS,
		},
		{
			regionName:       "asia",
			expectedRegionID: global_commonv1.Region_AZURE_ASIA,
		},
	}

	for _, tc := range testcases {
		regionID := RegionName2ID(tc.regionName)
		assert.Equal(t, tc.expectedRegionID, regionID)
	}
}
