160 lines
4.3 KiB
Go
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)
|
|
// }
|
|
//}
|