package mtproto import ( "testing" "github.com/stretchr/testify/assert" "go.mau.fi/mautrix-telegram/pkg/gotd/bin" "go.mau.fi/mautrix-telegram/pkg/gotd/mt" "go.mau.fi/mautrix-telegram/pkg/gotd/rpc" "go.mau.fi/mautrix-telegram/pkg/gotd/testutil" ) func TestConn_dropRPC(t *testing.T) { dropID := int64(10) tests := []struct { name string result bin.Encoder resultErr error wantErr bool }{ {"Dropped", &mt.RPCAnswerDropped{MsgID: dropID}, nil, false}, {"DroppedRunning", &mt.RPCAnswerDroppedRunning{}, nil, false}, {"Unknown", &mt.RPCAnswerUnknown{}, nil, true}, {"Error", nil, testutil.TestError(), true}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { a := assert.New(t) client := newTestClient(func(msgID int64, seqNo int32, body bin.Encoder) (bin.Encoder, error) { req, ok := body.(*mt.RPCDropAnswerRequest) a.True(ok) if ok { a.Equal(dropID, req.ReqMsgID) } return tt.result, tt.resultErr }) err := client.dropRPC(rpc.Request{ MsgID: dropID, SeqNo: 1, }) if tt.wantErr { a.Error(err) } else { a.NoError(err) } }) } }