l-dingtalk-stream-sdk-go/event/frame_handler_test.go

53 lines
1.5 KiB
Go

package event
import (
"context"
"errors"
"testing"
"github.com/stretchr/testify/assert"
"gitea.cdlsxd.cn/self-tools/l-dingtalk-stream-sdk-go/payload"
)
/**
* @Author linya.jj
* @Date 2023/4/26 17:15
*/
func EventHandlerSuccess(c context.Context, header *EventHeader, rawData []byte) (EventProcessStatusType, error) {
return EventProcessStatusKSuccess, nil
}
func EventHandlerLater(c context.Context, header *EventHeader, rawData []byte) (EventProcessStatusType, error) {
return EventProcessStatusKLater, nil
}
func EventHandlerLaterError(c context.Context, header *EventHeader, rawData []byte) (EventProcessStatusType, error) {
return EventProcessStatusKLater, errors.New("error")
}
func TestDefaultEventFrameHandler_OnEventReceived(t *testing.T) {
defh := NewDefaultEventFrameHandler(nil)
ret, err := defh.OnEventReceived(context.Background(), nil)
assert.Nil(t, ret)
assert.Nil(t, err)
df := &payload.DataFrame{}
defh = NewDefaultEventFrameHandler(EventHandlerSuccess)
ret, err = defh.OnEventReceived(context.Background(), df)
assert.Equal(t, payload.DataFrameResponseStatusCodeKOK, ret.Code)
assert.Nil(t, err)
defh = NewDefaultEventFrameHandler(EventHandlerLater)
ret, err = defh.OnEventReceived(context.Background(), df)
assert.Equal(t, payload.DataFrameResponseStatusCodeKInternalError, ret.Code)
assert.Nil(t, err)
defh = NewDefaultEventFrameHandler(EventHandlerLaterError)
ret, err = defh.OnEventReceived(context.Background(), df)
assert.Equal(t, payload.DataFrameResponseStatusCodeKInternalError, ret.Code)
assert.Nil(t, err)
}