public void CommittedEvent_AfterSerialization_IsValidAfterDeserialization() { var aggregateSequenceNumber = 3; var aggregateId = TestAggregateId.New; var entityId = TestId.New; var entity = new Test(entityId); var aggregateEvent = new TestAddedEvent(entity); var now = DateTimeOffset.UtcNow; var eventId = EventId.NewDeterministic( GuidFactories.Deterministic.Namespaces.Events, $"{aggregateId.Value}-v{aggregateSequenceNumber}"); var eventMetadata = new Metadata { Timestamp = now, AggregateSequenceNumber = aggregateSequenceNumber, AggregateName = typeof(TestAggregate).GetAggregateName().Value, AggregateId = aggregateId.Value, EventId = eventId }; var committedEvent = new CommittedEvent <TestAggregate, TestAggregateId, TestAddedEvent>( aggregateId, aggregateEvent, eventMetadata, now, aggregateSequenceNumber); committedEvent.SerializeDeserialize().Should().BeEquivalentTo(committedEvent); }