Esempio n. 1
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);
        }
        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());
        }