package v1beta

import (
	"testing"

	"google.golang.org/protobuf/types/known/timestamppb"

	openapicommonv1beta1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/common/v1beta1"
	openapiserverlessv1beta1 "github.com/tidbcloud/tidb-management-service/api/spec/tidb_cloud_open_api/serverless/v1beta1"
)

// "name:\"clusters/10500503034879023172\"  cluster_id:\"10500503034879023172\"  display_name:\"Clu23\"  region:{name:\"regions/aws-us-east-1\"  display_name:\"N. Virginia (us-east-1)\"  provider:AWS}  version:\"v6.6.0\"  created_by:\"90032-system@pingcap.com\"  user_prefix:\"2F3TqbzUuWU1RBB\"  state:READY  labels:{key:\"tidb.cloud/organization\"  value:\"90032\"}  labels:{key:\"tidb.cloud/project\"  value:\"103547\"}  create_time:{seconds:1688634791  nanos:902000000}  update_time:{seconds:1688634791  nanos:902000000}"
func TestConvertServerlessCluster(t *testing.T) {
	c1 := &openapiserverlessv1beta1.Cluster{
		ClusterId:   "10500503034879023172",
		DisplayName: "Clu23",
		Version:     "v6.6.0",
		CreatedBy:   "90032-system@pingcap.com",
		UserPrefix:  "2F3TqbzUuWU1RBB",
		State:       openapicommonv1beta1.ClusterState_ACTIVE,
		Name:        "clusters/10500503034879023172",
		Region: &openapicommonv1beta1.Region{
			Name:          "regions/aws-us-east-1",
			DisplayName:   "N. Virginia (us-east-1)",
			CloudProvider: openapicommonv1beta1.Region_aws,
		},
		CreateTime: &timestamppb.Timestamp{
			Seconds: 1688634791,
			Nanos:   902000000,
		},
		UpdateTime: &timestamppb.Timestamp{
			Seconds: 1688634791,
			Nanos:   902000000,
		},
		Endpoints: &openapiserverlessv1beta1.Cluster_Endpoints{},
		Labels: map[string]string{
			"tidb.cloud/organization": "90032",
			"tidb.cloud/project":      "103547",
		},
	}

	c2, err := convertServerlessCluster(c1)
	if err != nil {
		t.Fatal(err)
	}
	if c2.Id != 10500503034879023172 {
		t.Fatal("id not match")
	}
}
