mirror of
https://github.com/FloatTech/ZeroBot-Plugin.git
synced 2025-12-19 22:00:11 +08:00
128 lines
3.3 KiB
Go
128 lines
3.3 KiB
Go
package minecraftobserver
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/wdvxdr1123/ZeroBot/message"
|
|
"testing"
|
|
)
|
|
|
|
func Test_singleServerScan(t *testing.T) {
|
|
initErr := initializeDB("data/minecraftobserver/" + dbPath)
|
|
if initErr != nil {
|
|
t.Fatalf("initializeDB() error = %v", initErr)
|
|
}
|
|
if dbInstance == nil {
|
|
t.Fatalf("initializeDB() got = %v, want not nil", dbInstance)
|
|
}
|
|
t.Run("状态变更", func(t *testing.T) {
|
|
cleanTestData(t)
|
|
newSS1 := &serverStatus{
|
|
ServerAddr: "cn.nekoland.top",
|
|
Description: "测试服务器",
|
|
Players: "1/20",
|
|
Version: "1.16.5",
|
|
FaviconMD5: "",
|
|
}
|
|
err := dbInstance.updateServerStatus(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("upsertServerStatus() error = %v", err)
|
|
}
|
|
err = dbInstance.newSubscribe("cn.nekoland.top", 123456, 1)
|
|
if err != nil {
|
|
t.Fatalf("getServerSubscribeByTargetGroupAndAddr() error = %v", err)
|
|
}
|
|
changed, msg, err := singleServerScan(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("singleServerScan() error = %v", err)
|
|
}
|
|
if !changed {
|
|
t.Fatalf("singleServerScan() got = %v, want true", changed)
|
|
}
|
|
if len(msg) == 0 {
|
|
t.Fatalf("singleServerScan() got = %v, want not empty", msg)
|
|
}
|
|
fmt.Printf("msg: %v\n", msg)
|
|
})
|
|
|
|
t.Run("可达 -> 不可达", func(t *testing.T) {
|
|
cleanTestData(t)
|
|
newSS1 := &serverStatus{
|
|
ServerAddr: "dx.123213213123123.net",
|
|
Description: "测试服务器",
|
|
Players: "1/20",
|
|
Version: "1.16.5",
|
|
FaviconMD5: "",
|
|
PingDelay: 123,
|
|
}
|
|
err := dbInstance.updateServerStatus(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("upsertServerStatus() error = %v", err)
|
|
}
|
|
err = dbInstance.newSubscribe("dx.123213213123123.net", 123456, 1)
|
|
if err != nil {
|
|
t.Fatalf("getServerSubscribeByTargetGroupAndAddr() error = %v", err)
|
|
}
|
|
var msg message.Message
|
|
changed, _, err := singleServerScan(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("singleServerScan() error = %v", err)
|
|
}
|
|
if changed {
|
|
t.Fatalf("singleServerScan() got = %v, want false", changed)
|
|
}
|
|
// 第二次
|
|
changed, _, err = singleServerScan(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("singleServerScan() error = %v", err)
|
|
}
|
|
if changed {
|
|
t.Fatalf("singleServerScan() got = %v, want false", changed)
|
|
}
|
|
// 第三次
|
|
changed, msg, err = singleServerScan(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("singleServerScan() error = %v", err)
|
|
}
|
|
if !changed {
|
|
t.Fatalf("singleServerScan() got = %v, want true", changed)
|
|
}
|
|
if len(msg) == 0 {
|
|
t.Fatalf("singleServerScan() got = %v, want not empty", msg)
|
|
}
|
|
fmt.Printf("msg: %v\n", msg)
|
|
|
|
})
|
|
|
|
t.Run("不可达 -> 可达", func(t *testing.T) {
|
|
cleanTestData(t)
|
|
newSS1 := &serverStatus{
|
|
ServerAddr: "cn.nekoland.top",
|
|
Description: "测试服务器",
|
|
Players: "1/20",
|
|
Version: "1.16.5",
|
|
FaviconMD5: "",
|
|
PingDelay: pingDelayUnreachable,
|
|
}
|
|
err := dbInstance.updateServerStatus(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("upsertServerStatus() error = %v", err)
|
|
}
|
|
err = dbInstance.newSubscribe("cn.nekoland.top", 123456, 1)
|
|
if err != nil {
|
|
t.Fatalf("newSubscribe() error = %v", err)
|
|
}
|
|
changed, msg, err := singleServerScan(newSS1)
|
|
if err != nil {
|
|
t.Fatalf("singleServerScan() error = %v", err)
|
|
}
|
|
if !changed {
|
|
t.Fatalf("singleServerScan() got = %v, want true", changed)
|
|
}
|
|
if len(msg) == 0 {
|
|
t.Fatalf("singleServerScan() got = %v, want not empty", msg)
|
|
}
|
|
fmt.Printf("msg: %v\n", msg)
|
|
})
|
|
|
|
}
|