/// <summary>
        /// Convenience method to format a CloudEvent with a specialized formatter in
        /// structured mode, then parse the result as a JObject.
        /// </summary>
        private static JObject EncodeAndParseStructured(CloudEvent cloudEvent)
        {
            var formatter = new SpecializedFormatter();
            var encoded   = formatter.EncodeStructuredModeMessage(cloudEvent, out _);

            return(JsonEventFormatterTest.ParseJson(encoded));
        }
        public void DecodeByteArray()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data_base64"]     = SampleBinaryDataBase64;
            obj["datacontenttype"] = "application/binary";
            var cloudEvent = DecodeStructuredModeMessage(obj);

            Assert.Equal(SampleBinaryData, cloudEvent.Data);
        }
        public void DecodePlainText()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data"]            = "some text";
            obj["datacontenttype"] = "text/plain";
            var cloudEvent = DecodeStructuredModeMessage(obj);

            Assert.Equal("some text", cloudEvent.Data);
        }
        public void DecodeTextBinary()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data_base64"]     = Convert.ToBase64String(Encoding.UTF8.GetBytes("some text"));
            obj["datacontenttype"] = TextBinaryContentType;
            var cloudEvent = DecodeStructuredModeMessage(obj);

            Assert.Equal("some text", cloudEvent.Data);
        }
        public void DecodeStructuredMode_Base64Data()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data_base64"] = Convert.ToBase64String(Encoding.UTF8.GetBytes("{}"));
            byte[] bytes = Encoding.UTF8.GetBytes(obj.ToString());

            var formatter = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));

            Assert.Throws <ArgumentException>(() => formatter.DecodeStructuredModeMessage(bytes, null, null));
        }
        public void DecodeStructuredMode_NoData()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            byte[] bytes = Encoding.UTF8.GetBytes(obj.ToString());

            var formatter  = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));
            var cloudEvent = formatter.DecodeStructuredModeMessage(bytes, null, null);

            Assert.Null(cloudEvent.Data);
        }
        public void EncodeStructuredMode_NoData()
        {
            var cloudEvent = new CloudEvent().PopulateRequiredAttributes();

            var formatter = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));
            var body      = formatter.EncodeStructuredModeMessage(cloudEvent, out _);
            var jobject   = JsonEventFormatterTest.ParseJson(body);

            Assert.False(jobject.ContainsKey("data"));
            Assert.False(jobject.ContainsKey("data_base64"));
        }
        public void DecodeGuid()
        {
            Guid guid = Guid.NewGuid();
            var  obj  = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data"]            = GuidPrefix + Convert.ToBase64String(guid.ToByteArray());
            obj["datacontenttype"] = GuidContentType;
            var cloudEvent = DecodeStructuredModeMessage(obj);

            Assert.Equal(guid, cloudEvent.Data);
        }
        public void DecodeStructuredMode_ContentTypeIgnored()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data"] = new JObject {
                [AttributedModel.JsonPropertyName] = "test"
            };
            byte[] bytes = Encoding.UTF8.GetBytes(obj.ToString());

            var formatter  = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));
            var cloudEvent = formatter.DecodeStructuredModeMessage(bytes, new ContentType("text/plain"), null);

            var model = (AttributedModel)cloudEvent.Data;

            Assert.Equal("test", model.AttributedProperty);
        }
        public void EncodeBinaryModeEventData()
        {
            var cloudEvent = new CloudEvent().PopulateRequiredAttributes();

            cloudEvent.Data = new AttributedModel {
                AttributedProperty = "test"
            };
            var formatter = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));
            var body      = formatter.EncodeBinaryModeEventData(cloudEvent);
            var jobject   = JsonEventFormatterTest.ParseJson(body);

            new JTokenAsserter
            {
                { AttributedModel.JsonPropertyName, JTokenType.String, "test" }
            }.AssertProperties(jobject, assertCount: true);
        }
Beispiel #11
0
        public void DecodeStructuredMode()
        {
            var obj = JsonEventFormatterTest.CreateMinimalValidJObject();

            obj["data"] = new JObject {
                [AttributedModel.JsonPropertyName] = "test"
            };
            byte[] bytes = Encoding.UTF8.GetBytes(obj.ToString());

            var formatter  = CreateFormatter <AttributedModel>();
            var cloudEvent = formatter.DecodeStructuredModeMessage(bytes, null, null);

            var model = (AttributedModel)cloudEvent.Data !;

            Assert.Equal("test", model.AttributedProperty);
        }
        public void EncodeStructuredMode()
        {
            var cloudEvent = new CloudEvent().PopulateRequiredAttributes();

            cloudEvent.Data = new AttributedModel {
                AttributedProperty = "test"
            };
            var formatter = CloudEventFormatterAttribute.CreateFormatter(typeof(AttributedModel));
            var body      = formatter.EncodeStructuredModeMessage(cloudEvent, out _);
            var jobject   = JsonEventFormatterTest.ParseJson(body);

            Assert.False(jobject.ContainsKey("data_base64"));
            var data = (JObject)jobject["data"];

            new JTokenAsserter
            {
                { AttributedModel.JsonPropertyName, JTokenType.String, "test" }
            }.AssertProperties(data, assertCount: true);
        }