示例#1
0
        public void DecodeBatchMode_Empty()
        {
            var batchProto = new V1.CloudEventBatch();

            byte[] bytes       = batchProto.ToByteArray();
            var    stream      = new MemoryStream(bytes);
            var    formatter   = new ProtobufEventFormatter();
            var    cloudEvents = formatter.DecodeBatchModeMessage(stream, s_protobufCloudEventBatchContentType, null);

            Assert.Empty(cloudEvents);
        }
示例#2
0
        public void DecodeBatchMode_Multiple()
        {
            var batchProto = new V1.CloudEventBatch
            {
                Events =
                {
                    new V1.CloudEvent
                    {
                        SpecVersion = "1.0",
                        Type        = "type1",
                        Id          = "event1",
                        Source      = "//event-source1",
                        TextData    = "simple text",
                        Attributes  = { { "datacontenttype", StringAttribute("text/plain") } }
                    },
                    new V1.CloudEvent
                    {
                        SpecVersion = "1.0",
                        Type        = "type2",
                        Id          = "event2",
                        Source      = "//event-source2"
                    }
                }
            };


            byte[] bytes       = batchProto.ToByteArray();
            var    stream      = new MemoryStream(bytes);
            var    formatter   = new ProtobufEventFormatter();
            var    cloudEvents = formatter.DecodeBatchModeMessage(stream, s_protobufCloudEventBatchContentType, null);

            Assert.Equal(2, cloudEvents.Count);

            var event1 = cloudEvents[0];

            Assert.Equal("type1", event1.Type);
            Assert.Equal("event1", event1.Id);
            Assert.Equal(new Uri("//event-source1", UriKind.RelativeOrAbsolute), event1.Source);
            Assert.Equal("simple text", event1.Data);
            Assert.Equal("text/plain", event1.DataContentType);

            var event2 = cloudEvents[1];

            Assert.Equal("type2", event2.Type);
            Assert.Equal("event2", event2.Id);
            Assert.Equal(new Uri("//event-source2", UriKind.RelativeOrAbsolute), event2.Source);
            Assert.Null(event2.Data);
            Assert.Null(event2.DataContentType);
        }
示例#3
0
        public void DecodeBatchMode_Minimal()
        {
            var batchProto = new V1.CloudEventBatch
            {
                Events = { CreateMinimalCloudEventProto() }
            };

            byte[] bytes       = batchProto.ToByteArray();
            var    stream      = new MemoryStream(bytes);
            var    formatter   = new ProtobufEventFormatter();
            var    cloudEvents = formatter.DecodeBatchModeMessage(stream, s_protobufCloudEventBatchContentType, null);
            var    cloudEvent  = Assert.Single(cloudEvents);

            Assert.Equal("test-type", cloudEvent.Type);
            Assert.Equal("test-id", cloudEvent.Id);
            Assert.Equal(SampleUri, cloudEvent.Source);
        }