public void DecodeStructured_Invalid(string resource)
        {
            var bytes     = TestResourceHelper.LoadBytes(resource);
            var converter = new ProtobufJsonCloudEventFormatter <StorageObjectData>();

            Assert.Throws <InvalidOperationException>(() => converter.DecodeStructuredModeMessage(bytes, null, null));
        }
        public void DecodeBinary_NoData()
        {
            var cloudEvent = CreateSampleEvent();

            var converter = new ProtobufJsonCloudEventFormatter <StorageObjectData>();

            converter.DecodeBinaryModeEventData(new byte[0], cloudEvent);
            Assert.Null(cloudEvent.Data);
        }
        public void DecodeStructured()
        {
            var bytes         = TestResourceHelper.LoadBytes("structured-mode-body.json");
            var expectedEvent = CreateSampleEvent();

            var converter   = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var actualEvent = converter.DecodeStructuredModeMessage(bytes, new ContentType("application/cloudevents+json"), null);

            AssertCloudEventsEqual(expectedEvent, actualEvent);
        }
        public void EncodeBinary_NoData()
        {
            var cloudEvent = CreateSampleEvent();

            cloudEvent.Data = null;

            var converter = new ProtobufJsonCloudEventFormatter <StorageObjectData>();

            Assert.Empty(converter.EncodeBinaryModeEventData(cloudEvent).ToArray());
        }
        public void EncodeBinary()
        {
            var cloudEvent    = CreateSampleEvent();
            var expectedBytes = TestResourceHelper.LoadBytes("binary-mode-body.json");

            var converter   = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var actualBytes = converter.EncodeBinaryModeEventData(cloudEvent).ToArray();

            AssertJsonBytesEqual(expectedBytes, actualBytes);
        }
        public void EncodeBatch()
        {
            var batch         = new[] { CreateSampleEvent(), CreateSampleEvent2() };
            var expectedBytes = TestResourceHelper.LoadBytes("batch-body.json");

            var converter   = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var actualBytes = converter.EncodeBatchModeMessage(batch, out var contentType).ToArray();

            Assert.Equal("application/cloudevents-batch+json", contentType.MediaType);

            AssertJsonBytesEqual(expectedBytes, actualBytes);
        }
        public void EncodeStructured()
        {
            var cloudEvent    = CreateSampleEvent();
            var expectedBytes = TestResourceHelper.LoadBytes("structured-mode-body.json");

            var converter   = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var actualBytes = converter.EncodeStructuredModeMessage(cloudEvent, out var contentType).ToArray();

            Assert.Equal("application/cloudevents+json", contentType.MediaType);

            AssertJsonBytesEqual(expectedBytes, actualBytes);
        }
        public void DecodeBatch()
        {
            var bytes          = TestResourceHelper.LoadBytes("batch-body.json");
            var expectedEvent1 = CreateSampleEvent();
            var expectedEvent2 = CreateSampleEvent2();

            var converter    = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var actualEvents = converter.DecodeBatchModeMessage(bytes, new ContentType("application/cloudevents-batch+json"), null);

            Assert.Equal(2, actualEvents.Count);
            AssertCloudEventsEqual(expectedEvent1, actualEvents[0]);
            AssertCloudEventsEqual(expectedEvent2, actualEvents[1]);
        }
        public void DecodeBinary()
        {
            var bytes        = TestResourceHelper.LoadBytes("binary-mode-body.json");
            var cloudEvent   = CreateSampleEvent();
            var expectedData = cloudEvent.Data;

            cloudEvent.Data = null;

            var converter = new ProtobufJsonCloudEventFormatter <StorageObjectData>();

            converter.DecodeBinaryModeEventData(bytes, cloudEvent);
            var actualData = cloudEvent.Data;

            Assert.Equal(expectedData, actualData);
        }
        public void EncodeStructured_NoData()
        {
            var cloudEvent = CreateSampleEvent();

            cloudEvent.Data = null;

            var converter = new ProtobufJsonCloudEventFormatter <StorageObjectData>();
            var bytes     = converter.EncodeStructuredModeMessage(cloudEvent, out var contentType).ToArray();

            Assert.Equal("application/cloudevents+json", contentType.MediaType);

            var obj = JObject.Parse(Encoding.UTF8.GetString(bytes));

            Assert.False(obj.ContainsKey("data"));
        }