Beispiel #1
0
        public void Deserialize_creates_new_MessageId_if_property_not_set(
            EventDataSerializer sut, Message message)
        {
            var       envelope  = new Envelope(message);
            EventData eventData = sut.Serialize(envelope);

            eventData.Properties.Remove("MessageId");

            Envelope actual = sut.Deserialize(eventData);

            actual.MessageId.Should().NotBeEmpty();
            sut.Deserialize(eventData).MessageId.Should().NotBe(actual.MessageId);
        }
Beispiel #2
0
        public void Serialize_sets_MessageId_property_correctly(EventDataSerializer sut, Message message)
        {
            var envelope = new Envelope(message);

            EventData eventData = sut.Serialize(envelope);

            string propertyName = nameof(Envelope.MessageId);

            eventData.Properties.Keys.Should().Contain(propertyName);
            object actual = eventData.Properties[propertyName];

            actual.Should().Be(envelope.MessageId);
        }
Beispiel #3
0
        public void Serialize_serializes_message_correctly(Message message, JsonMessageSerializer serializer)
        {
            var sut      = new EventDataSerializer(serializer);
            var envelope = new Envelope(message);

            EventData eventData = sut.Serialize(envelope);

            ArraySegment <byte> body = eventData.Body;
            string value             = Encoding.UTF8.GetString(body.Array, body.Offset, body.Count);
            object actual            = serializer.Deserialize(value);

            actual.Should().BeOfType <Message>();
            actual.Should().BeEquivalentTo(message);
        }
Beispiel #4
0
        public void Deserialize_not_fails_even_if_Contributor_property_not_set(
            EventDataSerializer sut, Message message)
        {
            var       envelope  = new Envelope(message);
            EventData eventData = sut.Serialize(envelope);

            eventData.Properties.Remove("Contributor");

            Envelope actual = null;
            Action   action = () => actual = sut.Deserialize(eventData);

            action.Should().NotThrow();
            actual.Should().BeEquivalentTo(envelope, opts => opts.RespectingRuntimeTypes());
        }
Beispiel #5
0
        public void Deserialize_deserializes_envelope_correctly(
            EventDataSerializer sut,
            Guid messageId,
            Message message,
            string operationId,
            Guid correlationId,
            string contributor)
        {
            var       envelope  = new Envelope(messageId, message, operationId, correlationId, contributor);
            EventData eventData = sut.Serialize(envelope);

            Envelope actual = sut.Deserialize(eventData);

            actual.Should().BeEquivalentTo(envelope, opts => opts.RespectingRuntimeTypes());
        }
Beispiel #6
0
        public void Serialize_sets_CorrelationId_property_correctly(
            EventDataSerializer sut, Guid messageId, Message message, Guid correlationId)
        {
            var envelope = new Envelope(
                messageId: Guid.NewGuid(),
                message,
                correlationId: correlationId);

            EventData eventData = sut.Serialize(envelope);

            string propertyName = nameof(Envelope.CorrelationId);

            eventData.Properties.Keys.Should().Contain(propertyName);
            object actual = eventData.Properties[propertyName];

            actual.Should().Be(correlationId);
        }
Beispiel #7
0
        public void Serialize_sets_Contributor_property_correctly(
            EventDataSerializer sut, Guid messageId, Message message, string contributor)
        {
            var envelope = new Envelope(
                messageId: Guid.NewGuid(),
                message,
                contributor: contributor);

            EventData eventData = sut.Serialize(envelope);

            string propertyName = nameof(Envelope.Contributor);

            eventData.Properties.Keys.Should().Contain(propertyName);
            object actual = eventData.Properties[propertyName];

            actual.Should().BeOfType <string>().Which.Should().Be(contributor);
        }
Beispiel #8
0
        public async Task Serialize_serializes_message_correctly()
        {
            var message  = fixture.Create <BlogPostCreated>();
            var envelope = new Envelope(message);

            EventData eventData = await sut.Serialize(envelope);

            using (Stream stream = eventData.GetBodyStream())
                using (var reader = new StreamReader(stream, Encoding.UTF8))
                {
                    string value  = reader.ReadToEnd();
                    object actual = messageSerializer.Deserialize(value);
                    actual.Should().BeOfType <BlogPostCreated>();
                    actual.ShouldBeEquivalentTo(message);
                }
        }
 /// <summary>
 /// Serializes <see cref="Envelope"/> instance into <see cref="EventData"/>.
 /// </summary>
 /// <param name="envelope"><see cref="Envelope"/> to serialize.</param>
 /// <returns>An <see cref="EventData"/> that contains serialized data.</returns>
 protected virtual EventData Serialize(Envelope envelope)
 {
     return(_serializer.Serialize(envelope));
 }
Beispiel #10
0
        private async Task SendMessage(Envelope envelope)
        {
            EventData eventData = await _serializer.Serialize(envelope).ConfigureAwait(false);

            await _eventHubClient.SendAsync(eventData).ConfigureAwait(false);
        }