1
0
mirror of https://github.com/alice-lg/alice-lg.git synced 2024-05-11 05:55:03 +00:00
alice-lg-alice-lg/backend/api/response_test.go
2018-10-17 11:13:54 +02:00

124 lines
2.5 KiB
Go

package api
import (
"encoding/json"
"testing"
"time"
)
func TestStatusResponseSerialization(t *testing.T) {
// Make status
response := StatusResponse{
Api: ApiStatus{
Version: "2.0.0",
CacheStatus: CacheStatus{},
ResultFromCache: false,
Ttl: time.Now(),
},
Status: Status{
Message: "Server is up and running",
RouterId: "testrouter",
Version: "1.6.3",
Backend: "birdwatcher",
},
}
result, err := json.Marshal(response)
if err != nil {
t.Error(err)
}
_ = result
}
func TestNeighbourSerialization(t *testing.T) {
// Original backend response
payload := `{
"action": "restart",
"bgp_state": "Established",
"bird_protocol": "BGP",
"connection": "Established"
}`
details := make(map[string]interface{})
err := json.Unmarshal([]byte(payload), &details)
if err != nil {
t.Error(err)
}
// Make neighbour
neighbour := Neighbour{
Id: "PROTOCOL_23_42_",
State: "Established",
Description: "Some peer",
Address: "10.10.10.1",
Details: details,
}
result, err := json.Marshal(neighbour)
if err != nil {
t.Error(err)
}
_ = result
}
func TestCommunityStringify(t *testing.T) {
com := Community{23, 42}
if com.String() != "23:42" {
t.Error("Expected 23:42, got:", com.String())
}
extCom := ExtCommunity{"ro", 42, 123}
if extCom.String() != "ro:42:123" {
t.Error("Expected ro:42:123, but got:", extCom.String())
}
}
func TestHasCommunity(t *testing.T) {
com := Community{23, 42}
bgp := BgpInfo{
Communities: []Community{
Community{42, 123},
Community{23, 42},
Community{42, 23},
},
ExtCommunities: []ExtCommunity{
ExtCommunity{"rt", 23, 42},
ExtCommunity{"ro", 123, 456},
},
LargeCommunities: []Community{
Community{1000, 23, 42},
Community{2000, 123, 456},
},
}
if bgp.HasCommunity(com) == false {
t.Error("Expected community 23:42 to be present")
}
if bgp.HasCommunity(Community{111, 11}) != false {
t.Error("Expected community 111:11 to be not present")
}
if bgp.HasExtCommunity(ExtCommunity{"ro", 123, 456}) == false {
t.Error("Expected ro:123:456 in ext community set")
}
if bgp.HasExtCommunity(ExtCommunity{"ro", 111, 11}) != false {
t.Error("Expected ro:111:111 not in ext community set")
}
if bgp.HasLargeCommunity(Community{2000, 123, 456}) == false {
t.Error("Expected community 2000:123:456 present")
}
if bgp.HasLargeCommunity(Community{23, 42}) != false {
t.Error("23:42 should not be present in large commnuties")
}
}