package webScene

import (
	"github.com/dailymotion/allure-go"
	"github.com/tidbcloud/qa-PlatformAPIAuto/common"
	"github.com/tidbcloud/qa-PlatformAPIAuto/webScene/cdc/aws"
	"github.com/tidbcloud/qa-PlatformAPIAuto/webScene/cdc/gcp"
	"testing"
)

func (w *WebE2ECase) CDC_aws_tidbToMySQL(t *testing.T) {
	t.Parallel()
	aws.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	aws.ExecuteTidbToMySQL(t)
}

func (w *WebE2ECase) CDC_aws_tidbToKafka(t *testing.T) {
	t.Parallel()
	aws.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	aws.ExecuteTidbToKafka(t)
}

func (w *WebE2ECase) CDC_aws_changefeedRcu(t *testing.T) {
	t.Parallel()
	aws.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	aws.ExecuteChangefeedRcu(t)
}

func (w *WebE2ECase) CDC_aws_tidbToServerlessTiDB(t *testing.T) {
	t.Parallel()
	aws.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	w.WebRequestInfo.CreateServerlessCluster()
	aws.SetServerlessClusterId(w.WebRequestInfo.Cluster.ClusterId)
	aws.SetPassword(w.WebRequestInfo.Cluster.Password)
	aws.ExecuteTidbToServerlessTiDB(t)
	w.WebRequestInfo.DeleteClusterById(aws.GetClusterId())
}

func (w *WebE2ECase) CDC_gcp_tidbToMySQL(t *testing.T) {
	t.Parallel()
	gcp.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	gcp.ExecuteTidbToMySQL(t)
}

func (w *WebE2ECase) CDC_gcp_tidbToKafka(t *testing.T) {
	t.Parallel()
	gcp.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	gcp.ExecuteTidbToKafka(t)
}

func (w *WebE2ECase) CDC_gcp_changefeedRcu(t *testing.T) {
	t.Parallel()
	gcp.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	gcp.ExecuteChangefeedRcu(t)
}

func (w *WebE2ECase) CDC_gcp_gcs(t *testing.T) {
	t.Parallel()
	gcp.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	gcp.ExecuteTidbToGCS(t)
}

func (w *WebE2ECase) CDC_aws_s3(t *testing.T) {
	t.Parallel()
	aws.SetClusterId(w.WebRequestInfo.Cluster.ClusterId)
	aws.ExecuteTidbToS3(t)
}

func (w *WebE2ECase) OldGcpDataToDownstreamMysql(t *testing.T) {
	var provider = "gcp"
	allure.Test(t,
		allure.Epic("TestGcpDataToDownstreamMysql"),
		allure.Feature("DataToDownstreamMysql"),
		allure.Description("DataToDownstreamMysql"),
		allure.Action(func() {
			common.DataToDownstream(t, provider, w.WebRequestInfo.Cluster.ClusterId, "mysql")
		}))
}

func (w *WebE2ECase) OldAwsDataToDownstreamMysql(t *testing.T) {
	var provider = "aws"
	allure.Test(t,
		allure.Epic("TestAwsDataToDownstreamMysql"),
		allure.Feature("DataToDownstreamMysql"),
		allure.Description("DataToDownstreamMysql"),
		allure.Action(func() {
			common.DataToDownstream(t, provider, w.WebRequestInfo.Cluster.ClusterId, "mysql")
		}))
}
