Beispiel #1
0
        public void Should_set_and_get_event_id()
        {
            var commitId = Guid.NewGuid();

            sut.SetEventId(commitId);

            Assert.Equal(commitId, sut.Headers.EventId());
            Assert.Equal(commitId, sut.Headers.GetGuid("EventId"));
        }
        public Envelope <IEvent> Parse(EventData eventData, bool migrate = true)
        {
            var headers = ReadJson <EnvelopeHeaders>(eventData.Metadata);

            var eventType    = typeNameRegistry.GetType(eventData.Type);
            var eventPayload = ReadJson <IEvent>(eventData.Payload, eventType);

            if (migrate && eventPayload is IMigratedEvent migratedEvent)
            {
                eventPayload = migratedEvent.Migrate();
            }

            var envelope = new Envelope <IEvent>(eventPayload, headers);

            envelope.SetEventId(eventData.EventId);

            return(envelope);
        }
        public void Should_serialize_and_deserialize_envelope()
        {
            var commitId = Guid.NewGuid();

            var inputEvent = new Envelope <MyEvent>(new MyEvent {
                MyProperty = "My-Property"
            });

            inputEvent.SetAggregateId(Guid.NewGuid());
            inputEvent.SetCommitId(commitId);
            inputEvent.SetEventId(Guid.NewGuid());
            inputEvent.SetEventPosition("1");
            inputEvent.SetEventStreamNumber(1);
            inputEvent.SetTimestamp(SystemClock.Instance.GetCurrentInstant());

            var eventData = sut.ToEventData(inputEvent.To <IEvent>(), commitId);

            var outputEvent = sut.Parse(eventData).To <MyEvent>();

            AssertHeaders(inputEvent.Headers, outputEvent.Headers);
            AssertPayload(inputEvent, outputEvent);
        }