public async Task SaveAsync_EventHasJsonSerializableProperties_HandlesCorrectly()
        {
            var aggregateRootId        = Unified.NewCode();
            var serializableStateEvent = new SerializableEvent
            {
                AggregateRootId    = aggregateRootId,
                SerializableObject = new JsonSerializableObject(FixtureUtils.String())
            };

            var aggregateRootMock = new Mock <IAggregateRoot>(MockBehavior.Strict);

            aggregateRootMock.Setup(ar => ar.Id).Returns(aggregateRootId);
            aggregateRootMock.Setup(ar => ar.Events).Returns(new[] { serializableStateEvent });

            await store.SaveAsync(aggregateRootMock.Object);

            var storedEvent = (await store.GetAsync(aggregateRootId, 0)).Single();

            storedEvent.Should().BeEquivalentTo(serializableStateEvent, options => options.ForMessage());
        }