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()); }