package testcases

import (
	"github.com/pingcap/test-infra/caselib/pkg/model/workload"
	"github.com/pingcap/test-infra/caselib/pkg/steps"
	_ "github.com/pingcap/test-infra/sdk/resource/impl/k8s"
)

var _ = AddTestCase("dm_lightning_pause_and_resume", func() steps.Step {
	var (
		name           = "dm_lightning_pause_and_resume"
		env            = newCommonEnv()
		taskName       = "dm_lightning_pause_and_resume"
		sourceNameList = []string{"source-0"}
	)

	return env.init().b.
		// cleanUpEnv(name).
		CreateDatabase(env.UpStreams[0], name).
		DmRunWorkload(env.UpStreams[0], env.Dm, env.Workload, Spec.GetWorkloadOption(workload.CommandTypePrepare)).
		DmCreateSources(env.Dm, env.DmHost, Path.SourcePaths).
		DmStartTasks(env.Dm, env.DmHost, Path.TaskPaths).
		DmPauseTask(env.Dm, env.DmHost, Path.TaskPaths[0]).
		DmResumeTask(env.Dm, env.DmHost, Path.TaskPaths[0]).
		DmWaitTaskSynced(env.DmHost, taskName, sourceNameList).
		DmCheckSyncDiff(env.Dm, env.SyncDiff, env.DmHost, Path.DiffPaths[0]).
		DmRunWorkload(env.UpStreams[0], env.Dm, env.Workload, Spec.GetWorkloadOption(workload.CommandTypeRun)).
		DmWaitTaskSynced(env.DmHost, taskName, sourceNameList).
		DmCheckSyncDiff(env.Dm, env.SyncDiff, env.DmHost, Path.DiffPaths[0]).
		Build()
})
