public Envelope <IEvent> Parse(StoredEvent storedEvent) { Guard.NotNull(storedEvent, nameof(storedEvent)); var eventData = storedEvent.Data; var payloadType = typeNameRegistry.GetType(eventData.Type); var payloadValue = serializer.Deserialize <IEvent>(eventData.Payload, payloadType); if (payloadValue is IMigrated <IEvent> migratedEvent) { payloadValue = migratedEvent.Migrate(); if (ReferenceEquals(migratedEvent, payloadValue)) { Debug.WriteLine("Migration should return new event."); } } var envelope = new Envelope <IEvent>(payloadValue, eventData.Headers); envelope.SetEventPosition(storedEvent.EventPosition); envelope.SetEventStreamNumber(storedEvent.EventStreamNumber); return(envelope); }
public void Should_set_and_get_event_stream_number() { const int eventStreamNumber = 123; sut.SetEventStreamNumber(eventStreamNumber); Assert.Equal(eventStreamNumber, sut.Headers.EventStreamNumber()); Assert.Equal(eventStreamNumber, sut.Headers.GetLong("EventStreamNumber")); }
public void Should_set_and_get_event_stream_number() { const int eventStreamNumber = 123; sut.SetEventStreamNumber(eventStreamNumber); Assert.Equal(eventStreamNumber, sut.Headers.EventStreamNumber()); Assert.Equal(eventStreamNumber, sut.Headers["EventStreamNumber"].ToInt64(culture)); }
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); }