public void SaveChanges_ArrayOfThumbnailTasks_ThumbnailTasksSaved()
        {
            var taskEntities = new List <ThumbnailTaskEntity>();

            var mock = new Mock <IThumbnailRepository>();

            mock.SetupGet(x => x.UnitOfWork).Returns(new Mock <IUnitOfWork>().Object);
            mock.Setup(x => x.Add(It.IsAny <ThumbnailTaskEntity>()))
            .Callback((ThumbnailTaskEntity entity) =>
            {
                taskEntities.Add(entity);
            });
            mock.Setup(r => r.GetThumbnailTasksByIds(It.IsAny <string[]>())).Returns(
                (string[] ids) => { return(taskEntities.Where(t => ids.Contains(t.Id)).ToArray()); });

            var sut = new ThumbnailTaskService(() => mock.Object);

            sut.SaveOrUpdate(new[]
            {
                new ThumbnailTask()
                {
                    Id = "NewTaskId"
                }
            });

            Assert.Contains(taskEntities, x => x.Id == "NewTaskId");
        }
        public void Delete_ThumbnailOptionIds_DeletedThumbnailTasksWithPassedIds()
        {
            var taskEntities = ThumbnailTaskEntitysDataSource.ToList();

            var ids = taskEntities.Select(t => t.Id).ToArray();

            var mock = new Mock <IThumbnailRepository>();

            mock.SetupGet(x => x.UnitOfWork).Returns(new Mock <IUnitOfWork>().Object);
            mock.Setup(r => r.RemoveThumbnailTasksByIds(It.IsIn <string[]>(ids))).Callback(
                (string[] arr) =>
            {
                var entities = taskEntities.Where(e => arr.Contains(e.Id)).ToList();
                foreach (var entity in entities)
                {
                    taskEntities.Remove(entity);
                }
            });

            var sut = new ThumbnailTaskService(() => mock.Object);

            sut.RemoveByIds(ids);

            Assert.Empty(taskEntities);
        }
        public void GetByIds_ArrayOfIdis_ReturnsArrayOfThumbnailTasksWithPassedIds()
        {
            var taskEntities = ThumbnailTaskEntitysDataSource.ToArray();

            var ids   = taskEntities.Select(t => t.Id).ToArray();
            var tasks = taskEntities.Select(t => t.ToModel(new ThumbnailTask())).ToArray();

            var mock = new Mock <IThumbnailRepository>();

            mock.SetupGet(x => x.UnitOfWork).Returns(new Mock <IUnitOfWork>().Object);
            mock.Setup(r => r.GetThumbnailTasksByIds(It.IsIn <string[]>(ids)))
            .Returns(taskEntities.Where(t => ids.Contains(t.Id)).ToArray());

            var sut    = new ThumbnailTaskService(() => mock.Object);
            var result = sut.GetByIds(ids);

            Assert.Equal(result, tasks);
        }