79 lines
2.2 KiB
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)
|
|
})
|
|
}
|
|
}
|