예제 #1
0
        public async Task CopyTags()
        {
            var tag       = _fixture.Create <Tag>();
            var newName   = tag.TagName;
            var mergeInfo = new TagCopyInfo {
                NewTagName = newName, SourceTagId = 1
            };

            _photosService.Setup(m => m.CopyTags(mergeInfo.NewTagName, mergeInfo.SourceTagId))
            .ReturnsAsync(tag);

            var response = await _tagsController.CopyTag(mergeInfo);

            _photosService.Verify(m => m.CopyTags(mergeInfo.NewTagName, mergeInfo.SourceTagId),
                                  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);
        }
예제 #2
0
        public async Task <IActionResult> CopyTag([FromBody] TagCopyInfo copyInfo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ProblemModel(ModelState)));
            }

            var newTag = await _photoSevice.CopyTags(copyInfo.NewTagName, copyInfo.SourceTagId);

            return(Ok(new Dto.Tag(newTag)));
        }
예제 #3
0
        public async Task CopyTagsInvalid()
        {
            var tag       = _fixture.Create <Tag>();
            var newName   = tag.TagName;
            var mergeInfo = new TagCopyInfo {
                NewTagName = newName, SourceTagId = 1
            };

            _photosService.Setup(m => m.CopyTags(mergeInfo.NewTagName, mergeInfo.SourceTagId))
            .ReturnsAsync(tag);

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

            _photosService.Verify(m => m.CopyTags(mergeInfo.NewTagName, mergeInfo.SourceTagId),
                                  Times.Never);

            var response = await _tagsController.CopyTag(mergeInfo);

            Assert.IsType <BadRequestObjectResult>(response);
        }