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