package models import ( "fmt" "io/ioutil" "path/filepath" "testing" "gopkg.in/yaml.v2" ) // 單元測試:服務器列表 func TestGetServerList(t *testing.T) { absPath, _ := filepath.Abs("../data/config.yaml") configFile, err := ioutil.ReadFile(absPath) if err != nil { t.Errorf("讀取配置文件失敗: %v", err) } var servers ServerList if err := yaml.Unmarshal(configFile, &servers.Config); err != nil { t.Errorf("格式化配置文件失敗: %v", err) } fmt.Println(servers.Config) if err := servers.Read(); err != nil { t.Errorf("獲取服務器列表失敗: %v", err) } // 打印現有的服務器列表 for _, server := range servers.List { fmt.Println(server) } } // 單元測試: 刪除所有服務器 func TestDeleteAllServer(t *testing.T) { absPath, _ := filepath.Abs("../data/config.yaml") configFile, err := ioutil.ReadFile(absPath) if err != nil { t.Errorf("讀取配置文件失敗: %v", err) } var servers ServerList if err := yaml.Unmarshal(configFile, &servers.Config); err != nil { t.Errorf("格式化配置文件失敗: %v", err) } fmt.Println(servers.Config) if err := servers.Read(); err != nil { t.Errorf("獲取服務器列表失敗: %v", err) } for _, server := range servers.List { if err := servers.Delete(server.ID); err != nil { t.Errorf("註銷服務器失敗: %v", err) } } } // 單元測試:創建服務器 func TestCreateServer(t *testing.T) { absPath, _ := filepath.Abs("../data/config.yaml") configFile, err := ioutil.ReadFile(absPath) if err != nil { t.Errorf("讀取配置文件失敗: %v", err) } var servers ServerList if err := yaml.Unmarshal(configFile, &servers.Config); err != nil { t.Errorf("格式化配置文件失敗: %v", err) } fmt.Println(servers.Config) if err := servers.Create(); err != nil { t.Errorf("創建服務器失敗: %v", err) } } // 單元測試:刪除指定服務器 func TestDeleteServer(t *testing.T) { absPath, _ := filepath.Abs("../data/config.yaml") configFile, err := ioutil.ReadFile(absPath) if err != nil { t.Errorf("讀取配置文件失敗: %v", err) } var servers ServerList if err := yaml.Unmarshal(configFile, &servers.Config); err != nil { t.Errorf("格式化配置文件失敗: %v", err) } fmt.Println(servers.Config) if err := servers.Delete("ins-jfpq52jr"); err != nil { t.Errorf("註銷服務器失敗: %v", err) } } // 單元測試:全流程: 創建服務器 -> 註銷服務器 func TestCreateServerByTencentCloud(t *testing.T) { absPath, _ := filepath.Abs("../data/config.yaml") configFile, err := ioutil.ReadFile(absPath) if err != nil { t.Errorf("讀取配置文件失敗: %v", err) } var servers ServerList if err := yaml.Unmarshal(configFile, &servers.Config); err != nil { t.Errorf("格式化配置文件失敗: %v", err) } fmt.Println(servers.Config) if err := servers.Read(); err != nil { t.Errorf("獲取服務器列表失敗: %v", err) } //if err := servers.Create(); err != nil { // t.Errorf("創建服務器失敗: %v", err) //} if err := servers.Delete("ins-pglpixe1"); err != nil { t.Errorf("註銷服務器失敗: %v", err) } } //// 單元測試:獲取服務器列表 //func TestGetServerListByTencentCloud(t *testing.T) { // absPath, _ := filepath.Abs("../data/config.yaml") // configFile, err := ioutil.ReadFile(absPath) // if err != nil { // t.Errorf("讀取配置文件失敗: %v", err) // } // var config Config // if err := yaml.Unmarshal(configFile, &config); err != nil { // t.Errorf("格式化配置文件失敗: %v", err) // } // if err := CheckServerStatusByTencentCloud(config.TencentCloud.SecretId, config.TencentCloud.SecretKey); err != nil { // t.Errorf("獲取服務器列表失敗: %v", err) // } //} //// 單元測試:註銷服務器 //func TestTerminateServerByTencentCloud(t *testing.T) { // absPath, _ := filepath.Abs("../data/config.yaml") // configFile, err := ioutil.ReadFile(absPath) // if err != nil { // t.Errorf("讀取配置文件失敗: %v", err) // } // var config Config // if err := yaml.Unmarshal(configFile, &config); err != nil { // t.Errorf("格式化配置文件失敗: %v", err) // } // id := "ins-5ht4x6g5" // if err := TerminateServerByTencentCloud(config.TencentCloud.SecretId, config.TencentCloud.SecretKey, id); err != nil { // t.Errorf("註銷服務器失敗: %v", err) // } //}