From 0331394117d40bbbe9448cb7008cf2566fa29a86 Mon Sep 17 00:00:00 2001 From: Francesco Guardiani Date: Fri, 20 Mar 2020 16:05:33 +0100 Subject: [PATCH] Added direct piping test & buffering test (#410) Signed-off-by: Francesco Guardiani --- v2/protocol/http/message_test.go | 2 +- v2/protocol/http/write_responsewriter_test.go | 49 +++++++++++++++++++ 2 files changed, 50 insertions(+), 1 deletion(-) diff --git a/v2/protocol/http/message_test.go b/v2/protocol/http/message_test.go index 2a92e1f9e..d3b762be4 100644 --- a/v2/protocol/http/message_test.go +++ b/v2/protocol/http/message_test.go @@ -39,7 +39,7 @@ func TestNewMessageFromHttpRequest(t *testing.T) { } req := httptest.NewRequest("POST", "http://localhost", nil) - require.NoError(t, WriteRequest(ctx, (*binding.EventMessage)(&eventIn), req, binding.TransformerFactories{})) + require.NoError(t, WriteRequest(ctx, (*binding.EventMessage)(&eventIn), req)) got := NewMessageFromHttpRequest(req) require.Equal(t, tt.encoding, got.ReadEncoding()) diff --git a/v2/protocol/http/write_responsewriter_test.go b/v2/protocol/http/write_responsewriter_test.go index e8f56d6b2..829c7fda9 100644 --- a/v2/protocol/http/write_responsewriter_test.go +++ b/v2/protocol/http/write_responsewriter_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/require" "github.com/cloudevents/sdk-go/v2/binding" + "github.com/cloudevents/sdk-go/v2/binding/buffering" "github.com/cloudevents/sdk-go/v2/binding/test" "github.com/cloudevents/sdk-go/v2/event" ) @@ -33,6 +34,54 @@ func TestWriteHttpResponseWriter(t *testing.T) { messageFactory: test.MustCreateMockBinaryMessage, expectedEncoding: binding.EncodingBinary, }, + { + name: "Structured to buffered to Structured", + context: context.TODO(), + messageFactory: func(e event.Event) binding.Message { + m := test.MustCreateMockStructuredMessage(e) + + buffered, err := buffering.BufferMessage(context.TODO(), m) + require.NoError(t, err) + + return buffered + }, + expectedEncoding: binding.EncodingStructured, + }, + { + name: "Binary to buffered to Binary", + context: context.TODO(), + messageFactory: func(e event.Event) binding.Message { + m := test.MustCreateMockBinaryMessage(e) + + buffered, err := buffering.BufferMessage(context.TODO(), m) + require.NoError(t, err) + + return buffered + }, + expectedEncoding: binding.EncodingBinary, + }, + { + name: "Direct structured HttpRequest to Structured", + context: context.TODO(), + messageFactory: func(e event.Event) binding.Message { + req := httptest.NewRequest("POST", "http://localhost", nil) + require.NoError(t, WriteRequest(binding.WithForceStructured(context.TODO()), binding.ToMessage(&e), req)) + + return NewMessageFromHttpRequest(req) + }, + expectedEncoding: binding.EncodingStructured, + }, + { + name: "Binary to buffered to Binary", + context: context.TODO(), + messageFactory: func(e event.Event) binding.Message { + req := httptest.NewRequest("POST", "http://localhost", nil) + require.NoError(t, WriteRequest(binding.WithForceBinary(context.TODO()), binding.ToMessage(&e), req)) + + return NewMessageFromHttpRequest(req) + }, + expectedEncoding: binding.EncodingBinary, + }, { name: "Event to Structured", context: binding.WithPreferredEventEncoding(context.TODO(), binding.EncodingStructured),