// 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)) } }