package platform

import (
	"github.com/tidbcloud/qa-gourd/ProductService"
	"github.com/tidbcloud/qa-gourd/util"
)

type PlatformTest struct {
	w          *ProductService.WebRequestInfo
	URLInfoMap map[string]ProductService.UrlInfo
	Reporter   *util.AllureReporter
}

func InitPlatformTest(w *ProductService.WebRequestInfo, UrlInfoMap map[string]ProductService.UrlInfo, reporter *util.AllureReporter) *PlatformTest {
	pt := &PlatformTest{}
	pt.Init(w, UrlInfoMap, reporter)

	return pt
}
func (pt *PlatformTest) Init(w *ProductService.WebRequestInfo, UrlInfoMap map[string]ProductService.UrlInfo, reporter *util.AllureReporter) {
	pt.w = w
	pt.URLInfoMap = UrlInfoMap
	pt.Reporter = reporter
}

func (pt *PlatformTest) PreloadTestData() {
	dbo := &DataAPIDBOperation{
		Pt: pt,
	}
	// create session
	dbo.SessionId = pt.CreateSession()
	// create db
	dbo.CreateDB(EndpointSqlDBName)
	// create table
	dbo.CreateTableAfterUseDB(EndpointSqlDBName, CreateTableSql_imdb)
	// insert data
	dbo.ExecuteSql(InsertSql_imdb, EndpointSqlDBName)
	// close session
	pt.CloseSession(dbo.SessionId)
}
