coder/tailnet/tunnel_internal_test.go

61 lines
1.8 KiB
Go

package tailnet
import (
"testing"
"github.com/google/uuid"
"github.com/stretchr/testify/require"
)
func TestTunnelStore_Bidir(t *testing.T) {
t.Parallel()
p1 := uuid.MustParse("00000001-1111-1111-1111-111111111111")
p2 := uuid.MustParse("00000002-1111-1111-1111-111111111111")
uut := newTunnelStore()
uut.add(p1, p2)
require.Equal(t, []uuid.UUID{p1}, uut.findTunnelPeers(p2))
require.Equal(t, []uuid.UUID{p2}, uut.findTunnelPeers(p1))
uut.remove(p1, p2)
require.Empty(t, uut.findTunnelPeers(p1))
require.Empty(t, uut.findTunnelPeers(p2))
require.Len(t, uut.byDst, 0)
require.Len(t, uut.bySrc, 0)
}
func TestTunnelStore_RemoveAll(t *testing.T) {
t.Parallel()
p1 := uuid.MustParse("00000001-1111-1111-1111-111111111111")
p2 := uuid.MustParse("00000002-1111-1111-1111-111111111111")
p3 := uuid.MustParse("00000003-1111-1111-1111-111111111111")
uut := newTunnelStore()
uut.add(p1, p2)
uut.add(p1, p3)
uut.add(p3, p1)
require.Len(t, uut.findTunnelPeers(p1), 2)
require.Len(t, uut.findTunnelPeers(p2), 1)
require.Len(t, uut.findTunnelPeers(p3), 1)
uut.removeAll(p1)
require.Len(t, uut.findTunnelPeers(p1), 1)
require.Len(t, uut.findTunnelPeers(p2), 0)
require.Len(t, uut.findTunnelPeers(p3), 1)
uut.removeAll(p3)
require.Len(t, uut.findTunnelPeers(p1), 0)
require.Len(t, uut.findTunnelPeers(p2), 0)
require.Len(t, uut.findTunnelPeers(p3), 0)
}
func TestTunnelStore_TunnelExists(t *testing.T) {
t.Parallel()
p1 := uuid.UUID{1}
p2 := uuid.UUID{2}
uut := newTunnelStore()
require.False(t, uut.tunnelExists(p1, p2))
require.False(t, uut.tunnelExists(p2, p1))
uut.add(p1, p2)
require.True(t, uut.tunnelExists(p1, p2))
require.True(t, uut.tunnelExists(p2, p1))
uut.remove(p1, p2)
require.False(t, uut.tunnelExists(p1, p2))
require.False(t, uut.tunnelExists(p2, p1))
}