Files
waf-platform/EdgeDNS/internal/nodes/manager_route_test.go

139 lines
2.7 KiB
Go

// Copyright 2021 Liuxiangchao iwind.liu@gmail.com. All rights reserved.
//go:build plus
package nodes
import (
"github.com/TeaOSLab/EdgeCommon/pkg/dnsconfigs"
"github.com/TeaOSLab/EdgeDNS/internal/dbs"
"github.com/TeaOSLab/EdgeDNS/internal/events"
"github.com/TeaOSLab/EdgeDNS/internal/models"
"github.com/iwind/TeaGo/Tea"
_ "github.com/iwind/TeaGo/bootstrap"
"github.com/iwind/TeaGo/logs"
"testing"
)
func TestRouteManager_Loop(t *testing.T) {
var db = dbs.NewDB(Tea.Root + "/data/data.db")
err := db.Init()
if err != nil {
t.Fatal(err)
}
var manager = NewRouteManager(db)
for i := 0; i < 10; i++ {
_, err := manager.Loop()
if err != nil {
t.Fatal(err)
}
}
logs.PrintAsJSON(manager.allRouteMap, t)
}
func TestRouteManager_Load(t *testing.T) {
var db = dbs.NewDB(Tea.Root + "/data/data.db")
err := db.Init()
if err != nil {
t.Fatal(err)
}
var manager = NewRouteManager(db)
err = manager.Load()
if err != nil {
t.Fatal(err)
}
logs.PrintAsJSON(manager.allRouteMap, t)
t.Log("version:", manager.version)
}
func TestRouteManager_AddRoute(t *testing.T) {
var manager = NewRouteManager(nil)
manager.addRoute(&models.NSRoute{
Id: 1,
UserId: 0,
Priority: 0,
})
manager.addRoute(&models.NSRoute{
Id: 2,
UserId: 0,
Priority: 1,
})
manager.addRoute(&models.NSRoute{
Id: 3,
UserId: 0,
Priority: 2,
Order: 1,
})
manager.addRoute(&models.NSRoute{
Id: 4,
UserId: 0,
Priority: 2,
Order: 1,
})
manager.addRoute(&models.NSRoute{
Id: 4,
UserId: 0,
Priority: 2,
Order: 1,
})
manager.addRoute(&models.NSRoute{
Id: 4,
UserId: 1,
Priority: 2,
Order: 1,
})
manager.addRoute(&models.NSRoute{
Id: 5,
UserId: 1,
Priority: 2,
Order: 1,
})
logs.PrintAsJSON(manager.allRouteMap, t)
logs.PrintAsJSON(manager.userRouteMap, t)
}
func TestRouteManager_FindRouteCodes(t *testing.T) {
events.Notify(events.EventLoaded)
var manager = NewRouteManager(nil)
manager.loadDefaultRoutes()
{
var r = &models.NSRoute{
Id: 1,
Ranges: []dnsconfigs.NSRouteRangeInterface{
&dnsconfigs.NSRouteRangeIPRange{
IPFrom: "192.168.1.1",
IPTo: "192.168.1.200",
},
&dnsconfigs.NSRouteRangeIPRange{
IPFrom: "192.168.1.200",
IPTo: "192.168.1.255",
},
&dnsconfigs.NSRouteRangeIPRange{
IPFrom: "127.0.0.1",
IPTo: "127.0.0.1",
},
},
}
for _, rr := range r.Ranges {
err := rr.Init()
if err != nil {
t.Fatal(err)
}
}
manager.addRoute(r)
}
for _, ip := range []string{
"192.168.1.100",
"192.168.1.201",
"192.168.2.1",
"127.0.0.1",
"111.197.174.111",
"202.109.116.116",
"8.8.8.8",
} {
t.Log(ip+": ", manager.FindRouteCodes(ip, 0))
}
}