Files
openp2p/core/config_test.go
2024-07-14 11:00:43 +08:00

179 lines
7.6 KiB
Go

package openp2p
import (
"encoding/json"
"testing"
)
func TestSetSDWAN_ChangeNode(t *testing.T) {
conf := Config{}
sdwanInfo := SDWANInfo{}
sdwanStr := `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.4","resource":"10.1.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo)
if len(conf.getDelNodes()) > 0 {
t.Errorf("getDelNodes error")
return
}
if len(conf.getAddNodes()) != 7 {
t.Errorf("getAddNodes error")
return
}
sdwanInfo2 := SDWANInfo{}
sdwanStr = `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo2); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo2)
diff := conf.getDelNodes()
if len(diff) != 1 && diff[0].IP != "10.2.3.4" {
t.Errorf("getDelNodes error")
return
}
sdwanInfo3 := SDWANInfo{}
sdwanStr = `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo3); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo3)
diff = conf.getDelNodes()
if len(diff) != 1 && diff[0].IP != "10.2.3.60" {
t.Errorf("getDelNodes error")
return
}
// add new node
sdwanInfo4 := SDWANInfo{}
sdwanStr = `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo4); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo4)
diff = conf.getDelNodes()
if len(diff) > 0 {
t.Errorf("getDelNodes error")
return
}
diff = conf.getAddNodes()
if len(diff) != 1 && diff[0].IP != "10.2.3.60" {
t.Errorf("getAddNodes error")
return
}
}
func TestSetSDWAN_ChangeNodeIP(t *testing.T) {
conf := Config{}
sdwanInfo := SDWANInfo{}
sdwanStr := `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.4","resource":"10.1.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo)
if len(conf.getDelNodes()) > 0 {
t.Errorf("getDelNodes error")
return
}
sdwanInfo2 := SDWANInfo{}
sdwanStr = `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.44","resource":"10.1.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo2); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo2)
diff := conf.getDelNodes()
if len(diff) != 1 && diff[0].IP != "10.2.3.4" {
t.Errorf("getDelNodes error")
return
}
diff = conf.getAddNodes()
if len(diff) != 1 || diff[0].IP != "10.2.3.44" {
t.Errorf("getAddNodes error")
return
}
}
func TestSetSDWAN_ClearAll(t *testing.T) {
conf := Config{}
sdwanInfo := SDWANInfo{}
sdwanStr := `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.4","resource":"10.1.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo)
if len(conf.getDelNodes()) > 0 {
t.Errorf("getDelNodes error")
return
}
sdwanInfo2 := SDWANInfo{}
sdwanStr = `{"Nodes":null}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo2); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo2)
diff := conf.getDelNodes()
if len(diff) != 7 {
t.Errorf("getDelNodes error")
return
}
diff = conf.getAddNodes()
if len(diff) != 0 {
t.Errorf("getAddNodes error")
return
}
}
func TestSetSDWAN_ChangeNodeResource(t *testing.T) {
conf := Config{}
sdwanInfo := SDWANInfo{}
sdwanStr := `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.4","resource":"10.1.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo)
if len(conf.getDelNodes()) > 0 {
t.Errorf("getDelNodes error")
return
}
sdwanInfo2 := SDWANInfo{}
sdwanStr = `{"id":1312667996276071700,"name":"network1","gateway":"10.2.3.254/24","mode":"fullmesh","centralNode":"n1-stable","enable":1,"Nodes":[{"name":"222-debug","ip":"10.2.3.13"},{"name":"222stable","ip":"10.2.3.222"},{"name":"5800-debug","ip":"10.2.3.56"},{"name":"Mate60pro","ip":"10.2.3.60"},{"name":"Mymatepad2023","ip":"10.2.3.23"},{"name":"n1-stable","ip":"10.2.3.29","resource":"192.168.3.0/24"},{"name":"tony-stable","ip":"10.2.3.4","resource":"10.11.0.0/16"}]}`
if err := json.Unmarshal([]byte(sdwanStr), &sdwanInfo2); err != nil {
t.Errorf("unmarshal error")
return
}
conf.setSDWAN(sdwanInfo2)
diff := conf.getDelNodes()
if len(diff) != 1 && diff[0].IP != "10.2.3.4" {
t.Errorf("getDelNodes error")
return
}
diff = conf.getAddNodes()
if len(diff) != 1 || diff[0].Resource != "10.11.0.0/16" {
t.Errorf("getAddNodes error")
return
}
}
func TestInetAtoN(t *testing.T) {
ipa, _ := inetAtoN("121.5.147.4")
t.Log(ipa)
ipa, _ = inetAtoN("121.5.147.4/32")
t.Log(ipa)
}