/// <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); }
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); }