public async Task Save_should_not_check_snapshot_frequency_if_aggregate_is_not_snapshotable_([Frozen] Mock <ISnapshotStorageProvider> snapshotProvider,
                                                                                                     Repository repo,
                                                                                                     Guid aggregateId)
        {
            var aggregate = new NoneSnapshotable("Test");

            await repo.SaveAsync(aggregate).ConfigureAwait(false);

            snapshotProvider.Verify(x => x.SnapshotFrequency, Times.Never);
        }
        public async Task Save_should_not_store_snapshot_if_aggregate_is_not_snapshotable([Frozen] Mock <ISnapshotStorageProvider> snapshotProvider,
                                                                                          Repository repo,
                                                                                          Guid aggregateId)
        {
            var aggregate = new NoneSnapshotable("Test");

            await repo.SaveAsync(aggregate).ConfigureAwait(false);

            snapshotProvider.Verify(x => x.SaveSnapshotAsync(It.IsAny <Type>(), It.IsAny <Snapshot>()), Times.Never);
        }
        public async Task Get_should_not_try_to_get_latest_snapshot_if_aggregate_is_not_snapshotable([Frozen] Mock <ISnapshotStorageProvider> snapshotProvider,
                                                                                                     Repository repo,
                                                                                                     NoneSnapshotable noneSnapshotable,
                                                                                                     Guid aggregateId)
        {
            await repo.GetByIdAsync <NoneSnapshotable>(aggregateId)
            .ConfigureAwait(false);

            snapshotProvider.Verify(x => x.GetSnapshotAsync(
                                        It.Is <Type>(t => t == typeof(NoneSnapshotable)),
                                        It.Is <Guid>(g => g == aggregateId)),
                                    Times.Never);
        }