Files
ai/models/server_test.go
2023-06-05 16:48:22 +08:00

160 lines
4.3 KiB
Go

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)
server, err := servers.Create()
if err != nil {
t.Errorf("創建服務器失敗: %v", err)
}
fmt.Println(server)
}
// 單元測試:刪除指定服務器
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)
// }
//}