public async void CopyFromChangeset_ThrowsEntityNotFoundException()
        {
            var repository  = new Mock <ICrudRepository>();
            var crudService = new Mock <ICrudService <Guid, TestEntity> >();
            var service     = new HistoricalCrudServiceBase <Guid, TestEntity>(crudService.Object, repository.Object, null, null, null);

            await Assert.ThrowsAsync <EntityNotFoundException>(() => service.CopyFromChangeset(_entity.Id, _changeset.Id));
        }
        public async void CopyFromChangeset_ThrowsChangesetNotFoundException()
        {
            var repository = new Mock <ICrudRepository>();

            repository.Setup(_ => _.GetByIdAsync <Guid, TestEntity>(It.IsAny <Guid>())).ReturnsAsync(_entity);
            var crudService = new Mock <ICrudService <Guid, TestEntity> >();
            var service     = new HistoricalCrudServiceBase <Guid, TestEntity>(crudService.Object, repository.Object, null, null, null);

            await Assert.ThrowsAsync <ChangesetNotFoundException>(() => service.CopyFromChangeset(_entity.Id, _changeset.Id));
        }
        public async void CopyFromChangeset_ReturnsOk()
        {
            var repository = new Mock <ICrudRepository>();

            repository.Setup(_ => _.GetByIdAsync <Guid, TestEntity>(It.IsAny <Guid>())).ReturnsAsync(_entity);
            repository.Setup(_ => _.GetByIdAsync <Guid, HistoricalChangeset>(It.IsAny <Guid>())).ReturnsAsync(_changeset);
            var crudService = new Mock <ICrudService <Guid, TestEntity> >();

            crudService.Setup(_ => _.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(_entity);
            crudService.Setup(_ => _.CreateAsync(It.IsAny <TestEntity>())).ReturnsAsync(_entity);
            var service = new HistoricalCrudServiceBase <Guid, TestEntity>(crudService.Object, repository.Object, null, null, null);

            await service.CopyFromChangeset(_entity.Id, _changeset.Id);

            crudService.Verify(_ => _.CreateAsync(It.IsAny <TestEntity>()), Times.Once);
            repository.Verify(_ => _.CreateAsync <Guid, HistoricalEvent>(It.IsAny <HistoricalEvent>()), Times.Once);
            repository.Verify(_ => _.SaveChangesAsync(), Times.Once);
        }