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

51 lines
1.5 KiB
Go

package event
import (
"context"
"errors"
"github.com/stretchr/testify/assert"
"github.com/open-dingtalk/dingtalk-stream-sdk-go/payload"
"testing"
)
/**
* @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)
}