sdk-go/test/integration/http/middleware_v1_test.go

79 lines
2.2 KiB
Go

package http
import (
"testing"
"time"
cloudevents "github.com/cloudevents/sdk-go"
)
func TestClientMiddleware_binary_v1(t *testing.T) {
now := time.Now()
testCases := TapTestCases{
"Middleware v1.0 -> v1.0": {
now: now,
event: func() *cloudevents.Event {
e := cloudevents.NewEvent(cloudevents.VersionV1)
e.SetID("ABC-123")
e.SetType("unit.test.client.sent")
e.SetSource("/unit/test/client")
e.SetSubject("resource")
e.SetDataContentType(cloudevents.ApplicationJSON)
_ = e.SetData(map[string]string{"hello": "unittest"})
e.SetExtension("number", "4002909746823859279")
return &e
}(),
want: func() *cloudevents.Event {
e := cloudevents.NewEvent(cloudevents.VersionV1)
e.SetID("ABC-123")
e.SetType("unit.test.client.sent")
e.SetTime(now)
e.SetSource("/unit/test/client")
e.SetSubject("resource")
e.SetDataContentType(cloudevents.ApplicationJSON)
e.Data = map[string]string{"hello": "unittest"}
e.SetExtension("number", "4002909746823859279")
return &e
}(),
asSent: &TapValidation{
Method: "POST",
URI: "/",
Header: map[string][]string{
"ce-specversion": {"1.0"},
"ce-id": {"ABC-123"},
"ce-number": {"4002909746823859279"},
"ce-time": {now.UTC().Format(time.RFC3339Nano)},
"ce-type": {"unit.test.client.sent"},
"ce-source": {"/unit/test/client"},
"ce-subject": {"resource"},
"content-type": {"application/json"},
},
Body: `{"hello":"unittest"}`,
ContentLength: 20,
},
asRecv: &TapValidation{
Header: map[string][]string{
"ce-specversion": {"1.0"},
"ce-id": {"ABC-123"},
"ce-number": {"4002909746823859279"},
"ce-time": {now.UTC().Format(time.RFC3339Nano)},
"ce-type": {"unit.test.client.sent"},
"ce-source": {"/unit/test/client"},
"ce-subject": {"resource"},
"content-type": {"application/json"},
},
Body: `{"hello":"unittest"}`,
Status: "200 OK",
ContentLength: 20,
},
},
}
for n, tc := range testCases {
t.Run(n, func(t *testing.T) {
ClientMiddleware(t, tc)
})
}
}