package utils

import (
	"testing"

	. "github.com/onsi/gomega"

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

func TestConvertRegionName(t *testing.T) {
	g := NewWithT(t)
	g.Expect(ConvertRegionName("regions/aws-us-east-1")).To(Equal("us-east-1"))
	g.Expect(ConvertRegionName("regions/gcp-us-east1")).To(Equal("us-east1"))
	g.Expect(ConvertRegionName("regions/azure-eastus")).To(Equal("eastus"))
}

func TestConvertRegionToMgmt(t *testing.T) {
	g := NewWithT(t)
	g.Expect(ConvertRegionToMgmt("us-east-1", openapicommonv1beta1.Region_aws.String())).
		To(Equal("regions/aws-us-east-1"))
	g.Expect(ConvertRegionToMgmt("us-east1", openapicommonv1beta1.Region_gcp.String())).
		To(Equal("regions/gcp-us-east1"))
	g.Expect(ConvertRegionToMgmt("eastus", openapicommonv1beta1.Region_azure.String())).
		To(Equal("regions/azure-eastus"))
}

func TestGetCpuNum(t *testing.T) {
	g := NewWithT(t)
	g.Expect(GetCpuNum("4C8G")).To(Equal(4))
	g.Expect(GetCpuNum("4C16G")).To(Equal(4))
	g.Expect(GetCpuNum("32C128G-IO2")).To(Equal(32))
}

func TestGetMemorySize(t *testing.T) {
	g := NewWithT(t)
	g.Expect(GetMemorySize("4C8G")).To(Equal(8))
	g.Expect(GetMemorySize("4C16G")).To(Equal(16))
	g.Expect(GetMemorySize("32C128G-IO2")).To(Equal(128))
}
