quorate/services/short/tunnel/vici_test.go

33 lines
1.1 KiB
Go
Raw Permalink Normal View History

package tunnel
import (
"testing"
"github.com/strongswan/govici/vici"
"quorate.dev/services/short/config"
)
func TestReturnPeer(t *testing.T) {
sa := func(index int, state, childState string) *vici.Message {
m, err := vici.MarshalMessage(map[string]any{peerName(index): map[string]any{"state": state, "child-sas": map[string]any{"child": map[string]any{"state": childState}}}})
if err != nil {
t.Fatal(err)
}
return m
}
both := []*vici.Message{sa(0, "ESTABLISHED", "INSTALLED"), sa(1, "ESTABLISHED", "INSTALLED")}
if got := returnPeer(livePeers(both)); got != 0 {
t.Fatal(got)
}
if got := returnPeer(livePeers(both[1:])); got != 1 {
t.Fatal(got)
}
if got := returnPeer(livePeers([]*vici.Message{sa(0, "CONNECTING", "INSTALLED"), sa(1, "ESTABLISHED", "REKEYING")})); got != -1 {
t.Fatal(got)
}
first := settings("192.0.2.1", config.Peer{Address: "192.0.2.2"}, 0)
second := settings("192.0.2.1", config.Peer{Address: "192.0.2.3"}, 1)
if first.Children["short0"].In == second.Children["short1"].In {
t.Fatal("overlapping XFRM policies")
}
}