forked from quic-go/quic-go
34 lines
1.0 KiB
Go
34 lines
1.0 KiB
Go
package quic
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
type mockIndexableConn struct{ addr net.Addr }
|
|
|
|
var _ indexableConn = &mockIndexableConn{}
|
|
|
|
func (m *mockIndexableConn) LocalAddr() net.Addr { return m.addr }
|
|
|
|
func TestMultiplexerAddNewPacketConns(t *testing.T) {
|
|
conn1 := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 1234}}
|
|
getMultiplexer().AddConn(conn1)
|
|
conn2 := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 1235}}
|
|
getMultiplexer().AddConn(conn2)
|
|
|
|
require.NoError(t, getMultiplexer().RemoveConn(conn1))
|
|
require.NoError(t, getMultiplexer().RemoveConn(conn2))
|
|
}
|
|
|
|
func TestMultiplexerPanicsOnDuplicateConn(t *testing.T) {
|
|
conn := &mockIndexableConn{addr: &net.UDPAddr{IP: net.IPv4(1, 2, 3, 4), Port: 4321}}
|
|
getMultiplexer().AddConn(conn)
|
|
require.Panics(t, func() { getMultiplexer().AddConn(conn) })
|
|
|
|
require.NoError(t, getMultiplexer().RemoveConn(conn))
|
|
require.ErrorContains(t, getMultiplexer().RemoveConn(conn), "cannote remove connection")
|
|
}
|