Files
mautrix-telegram/pkg/gotd/transport/protocol_test.go
T
2025-06-27 20:03:37 -07:00

40 lines
657 B
Go

package transport
import (
"context"
"testing"
"time"
"github.com/stretchr/testify/require"
"go.mau.fi/mautrix-telegram/pkg/gotd/bin"
)
func TestProtocol_Pipe(t *testing.T) {
a := require.New(t)
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
payload := []byte("abcdabcd")
test := func(c1, c2 Conn) {
go func() {
b1 := &bin.Buffer{Buf: payload}
a.NoError(c1.Send(ctx, b1))
}()
b2 := &bin.Buffer{}
a.NoError(c2.Recv(ctx, b2))
a.Equal(payload, b2.Buf)
}
c1, c2 := Intermediate.Pipe()
defer func() {
a.NoError(c1.Close())
a.NoError(c2.Close())
}()
test(c1, c2)
test(c2, c1)
}