public async Task MergeTags()
        {
            var tag       = _fixture.Create <TagStat>();
            var newName   = tag.TagName;
            var mergeInfo = new TagMergeInfo {
                NewTagName = newName, SourceTagIds = new int[] { 1, 2, 3 }
            };

            _photosService.Setup(m => m.MergeTags(mergeInfo.NewTagName, mergeInfo.SourceTagIds))
            .ReturnsAsync(tag);

            var response = await _tagsController.MergeTags(mergeInfo);

            _photosService.Verify(m => m.MergeTags(mergeInfo.NewTagName, mergeInfo.SourceTagIds),
                                  Times.Once);

            Assert.IsType <OkObjectResult>(response);

            var value = ((OkObjectResult)response).Value;

            Assert.IsType <Dto.Tag>(value);

            var dto = value as Dto.Tag;

            Assert.Equal(tag.TagName, dto.TagName);
            Assert.Equal(tag.TagId, dto.TagId);
        }
Esempio n. 2
0
        public async Task <IActionResult> MergeTags([FromBody] TagMergeInfo mergeInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ProblemModel(ModelState)));
            }

            var finalTag = await _photoSevice.MergeTags(mergeInfo.NewTagName, mergeInfo.SourceTagIds);

            return(Ok(new Dto.Tag(finalTag)));
        }
        public async Task MergeTagsInvalid()
        {
            var tag       = _fixture.Create <TagStat>();
            var newName   = tag.TagName;
            var mergeInfo = new TagMergeInfo {
                NewTagName = newName, SourceTagIds = new int[] { 1, 2, 3 }
            };

            _photosService.Setup(m => m.MergeTags(mergeInfo.NewTagName, mergeInfo.SourceTagIds))
            .ReturnsAsync(tag);

            _tagsController.ModelState.AddModelError("key", "error");

            _photosService.Verify(m => m.MergeTags(mergeInfo.NewTagName, mergeInfo.SourceTagIds),
                                  Times.Never);

            var response = await _tagsController.MergeTags(mergeInfo);

            Assert.IsType <BadRequestObjectResult>(response);
        }