public void AddTaskResult(ImgTaskResult result)
        {
            var dbEditTaskResult = _mapper.Map <ImgTaskResult, DbImgTaskResult>(result);

            _dbContext.DbImgTaskResult.Add(dbEditTaskResult);
            _dbContext.SaveChanges();
        }
        public void ProcessTask_sends_valid_msgs_to_other_objects()
        {
            ImgTaskFactoryRegistry.Init(typeof(ConvertTaskConsumer_Tests).Assembly);

            var stubImg = new MemoryStream(new byte[] { 1, 2, 3 });

            var convertTask = (TestConvertTask)ImgTaskFactoryRegistry.GetImgTask(Guid.NewGuid(), Guid.NewGuid(), "testConvert",
                                                                                 new Dictionary <string, string>()
            {
                { "to", "pdf" }
            });
            var expectedTaskResult = new ImgTaskResult(convertTask.TaskId, convertTask.GroupId, stubImg, "png");

            var resultRepo = new Mock <IImgTaskResultRepository>();

            var imgRepo = new Mock <IImgRepository>();

            imgRepo.Setup(f => f.GetImg(convertTask.ImgId)).Returns(new Img(convertTask.ImgId, stubImg, "png"));

            var progressRepo = new Mock <IImgTaskProgressRepository>();

            var consumer = new ConvertTaskConsumer(resultRepo.Object, progressRepo.Object, imgRepo.Object);

            consumer.ProcessTask(convertTask);



            resultRepo.Verify(f => f.AddTaskResult(It.Is <ImgTaskResult>(result =>
                                                                         result.TaskId == expectedTaskResult.TaskId && result.GroupId == expectedTaskResult.GroupId)), Times.Never());
            resultRepo.Verify(f => f.UpdateTaskResult(It.Is <ImgTaskResult>(result =>
                                                                            result.TaskId == expectedTaskResult.TaskId && result.GroupId == expectedTaskResult.GroupId)), Times.Once());
        }
Example #3
0
        public Guid CreateEditTask(Stream imgStream, string imgFormat, ImgTaskCreationParams[] taskCreationParams)
        {
            var image = new Img(Guid.NewGuid(), imgStream, imgFormat);

            _imgRepository.AddImg(image);
            var groupId = Guid.NewGuid();

            var tasks = taskCreationParams.Select(taskCreationParam =>
            {
                var task = ImgTaskFactoryRegistry.GetImgTask(groupId, image.ImgId, taskCreationParam.TaskName,
                                                             taskCreationParam.TaskParams);
                return(task);
            }).ToArray();

            foreach (var task in tasks)
            {
                var imgTaskResult = ImgTaskResult.FromTask(task, null, null);
                _imgTaskResultRepository.AddTaskResult(imgTaskResult);
            }

            foreach (var task in tasks)
            {
                var progress = ImgTaskProgress.FromTask(task);
                _imgTaskProgressRepository.AddTaskProgress(progress);
            }

            foreach (var task in tasks)
            {
                _messageQueueService.QueueTaskAsync(task).Wait();
            }

            return(groupId);
        }
Example #4
0
        public void AddTaskResult_when_task_progress_exist_saves_task_result()
        {
            var groupId = Guid.NewGuid();
            var taskId  = Guid.NewGuid();

            var result = new ImgTaskResult(taskId, groupId, new MemoryStream(new byte[] { 1, 2, 3 }), "png");

            _imgTaskResultRepository.AddTaskResult(result);

            _dbContext.DbImgTaskResult.Count().Should().Be(1);
        }
        public void UpdateTaskResult(ImgTaskResult result)
        {
            var dbEditTaskResult = _mapper.Map <ImgTaskResult, DbImgTaskResult>(result);

            var existing = _dbContext.DbImgTaskResult.Find(result.GroupId, result.TaskId);

            existing.Image     = dbEditTaskResult.Image;
            existing.Extension = dbEditTaskResult.Extension;

            _dbContext.DbImgTaskResult.Update(existing);

            _dbContext.SaveChanges();
        }
Example #6
0
        public void GetTaskProgressesByGroupId_returs_valid_taskProgress()
        {
            var editTaskProgress = new ImgTaskProgress(Guid.NewGuid(), Guid.NewGuid(), ImgTaskState.Pending);
            var result           = new ImgTaskResult(editTaskProgress.TaskId, editTaskProgress.GroupId, null, null);

            _dbContext.DbImgTaskResult.Add(_mapper.Map <ImgTaskResult, DbImgTaskResult>(result));
            _dbContext.DbImgTaskProgress.Add(_mapper.Map <DbImgTaskProgress>(editTaskProgress));
            _dbContext.SaveChanges();

            var found = _imgTaskProgressRepository.GetTaskProgressesByGroupId(editTaskProgress.GroupId);

            found.Length.Should().Be(1);
            found[0].Should().BeEquivalentTo(editTaskProgress);
        }
Example #7
0
        public void AddTaskProgress_adds_to_db()
        {
            var editTaskProgress = new ImgTaskProgress(Guid.NewGuid(), Guid.NewGuid(), ImgTaskState.Pending);
            var result           = new ImgTaskResult(editTaskProgress.TaskId, editTaskProgress.GroupId, null, null);

            _dbContext.DbImgTaskResult.Add(_mapper.Map <ImgTaskResult, DbImgTaskResult>(result));

            _imgTaskProgressRepository.AddTaskProgress(editTaskProgress);

            var found = _dbContext.DbImgTaskProgress.SingleOrDefault(e =>
                                                                     e.TaskId == editTaskProgress.TaskId && e.GroupId == editTaskProgress.GroupId);
            var total = _dbContext.DbImgTaskProgress.Count();

            found.Should().NotBeNull();
            found.Should().BeEquivalentTo(editTaskProgress);
            total.Should().Be(1);
        }
Example #8
0
        public Task ProcessTask(ConvertImgTask task)
        {
            var image = _imgRepository.GetImg(task.ImgId);

            var resultImg = task.Execute(image);

            var newProgress = ImgTaskProgress.FromTask(task);

            newProgress.ImgTaskState = ImgTaskState.Completed;

            _imgTaskProgress.UpdateTaskProgress(newProgress);

            var taskResult = ImgTaskResult.FromTask(task, resultImg.ImageStream, resultImg.Extension);

            _imgTaskResultRepository.UpdateTaskResult(taskResult);

            return(Task.CompletedTask);
        }
        public void GetTaskResult_when_task_completed_returns_valid_result()
        {
            var groupId              = Guid.NewGuid();
            var taskId               = Guid.NewGuid();
            var expectedResult       = new ImgTaskResult(taskId, groupId, new MemoryStream(new byte[3]), "png");
            var taskResultRepository = new Mock <IImgTaskResultRepository>();

            taskResultRepository.Setup(f => f.GeTaskResult(groupId, taskId))
            .Returns(expectedResult);

            var taskResultService = new ImgTaskResultService(taskResultRepository.Object);
            var result            = taskResultService.GetTaskResult(groupId, taskId);

            result.GroupId.Should().Be(groupId);
            result.TaskId.Should().Be(taskId);
            result.ImgStream.CanRead.Should().BeTrue();
            result.ImgStream.Length.Should().BeGreaterThan(0);
            taskResultRepository.Verify(f => f.GeTaskResult(groupId, taskId), Times.Once());
        }
Example #10
0
        public void GetTaskResult_when_task_exists_returns_valid_result()
        {
            var groupId = Guid.NewGuid();
            var taskId  = Guid.NewGuid();
            var mapper  = _container.Resolve <IMapper>();


            var progress = new ImgTaskProgress(taskId, groupId, ImgTaskState.Completed);
            var result   = new ImgTaskResult(taskId, groupId, new MemoryStream(new byte[] { 1, 2, 3 }), "png");

            _dbContext.DbImgTaskProgress.Add(mapper.Map <ImgTaskProgress, DbImgTaskProgress>(progress));
            _dbContext.DbImgTaskResult.Add(mapper.Map <ImgTaskResult, DbImgTaskResult>(result));
            _dbContext.SaveChanges();

            var foundResult = _imgTaskResultRepository.GeTaskResult(groupId, taskId);

            foundResult.ImgStream.Length.Should().BeGreaterThan(0);
            foundResult.ImgStream.CanRead.Should().BeTrue();
            foundResult.Should().BeEquivalentTo(result,
                                                options => { return(options.Excluding(taskResult => taskResult.ImgStream)); });
        }
Example #11
0
        public void UpdateTaskResult_when_task_exists_updates_it()
        {
            var groupId = Guid.NewGuid();
            var taskId  = Guid.NewGuid();
            var mapper  = _container.Resolve <IMapper>();


            var result = new ImgTaskResult(taskId, groupId, null, null);

            _dbContext.DbImgTaskResult.Add(mapper.Map <ImgTaskResult, DbImgTaskResult>(result));
            _dbContext.SaveChanges();


            var updated = new ImgTaskResult(taskId, groupId, new MemoryStream(new byte[] { 1, 2, 3 }), "png");

            _imgTaskResultRepository.UpdateTaskResult(updated);


            var foundResult = _dbContext.DbImgTaskResult.Find(groupId, taskId);

            foundResult.Image.Length.Should().Be(3);
            foundResult.Should().BeEquivalentTo(updated,
                                                options => { return(options.Excluding(taskResult => taskResult.ImgStream)); });
        }