package db

import (
	"fmt"
	"io/ioutil"
	"olympus/oncall/backend/pkg/config_init"
	"olympus/oncall/backend/pkg/log"
	"testing"

	"gopkg.in/yaml.v3"
)

var (
	mode string = "Debug"
)

func TestConnectDB(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)

	e, all, err := GetAuth("hu.guo@pingcap.com")
	if err != nil {
		t.Error(err)
	}
	fmt.Println(e)
	fmt.Println(all)
}

func TestTempWeek(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)
	w, err := GetTempWeekId()
	if err != nil {
		t.Error(err)
	}
	fmt.Println(w)
}

func TestGetCategoryInf(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)
	w, err := GetCategoryInfo(2)
	if err != nil {
		t.Error(err)
	}
	fmt.Println(w)
}

func TestGetShiftList(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)
	w, err := GetShiftList()
	if err != nil {
		t.Error(err)
	}
	fmt.Println(w["PM - PM"][0].Week)
}

func TestDeleteOne(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)
	err := DeleteOnePerson(288, 24)
	if err != nil {
		t.Error(err)
	}
}
func TestAdd(t *testing.T) {
	log.Init("Debug")
	config_init.SetUpConfig(mode)
	AddOnePerson("test", "test", "test", "11111111111", 24, 22)
}

func TestRobin(t *testing.T) {
	// log.Init("Debug")
	// config_init.SetUpConfig(mode)

	content, err := ioutil.ReadFile("./etc/round.yml")
	if err != nil {
		t.Error(err)
	}

	round := &Round{}
	err = yaml.Unmarshal(content, round)
	if err != nil {
		t.Error(err)
	}

	fmt.Println("round: ", round.Shifts[0].Category)
	fmt.Println("round: ", round.Shifts[8].Robin[0][0])

	DeleteRound(3, 2)

}

func TestRobinADD(t *testing.T) {
	// log.Init("Debug")
	// config_init.SetUpConfig(mode)

	content, err := ioutil.ReadFile("./etc/round.yml")
	if err != nil {
		t.Error(err)
	}

	round := &Round{}
	err = yaml.Unmarshal(content, round)
	if err != nil {
		t.Error(err)
	}

	AddRound(3, 2)

}
