コード例 #1
0
        public void RemoveTag_When_ModelState_Invalid()
        {
            // arrange
            var destinationServiceMock = new Mock <IDestinationService>(MockBehavior.Strict);
            var tagServiceMock         = new Mock <ITagService>(MockBehavior.Strict);

            var tempDataMock = new Mock <ITempDataDictionary>();
            var controller   = new DestinationController(destinationServiceMock.Object, tagServiceMock.Object)
            {
                TempData = tempDataMock.Object
            };

            int destinationId = 1;
            int tagId         = 2;
            var model         = new RemoveTagRequestModel {
                DestinationId = destinationId, TagId = tagId
            };

            destinationServiceMock.Setup(s => s.ExistsAsync(destinationId)).ReturnsAsync(true);
            tagServiceMock.Setup(s => s.ExistsAsync(tagId)).ReturnsAsync(true);

            controller.ModelState.AddModelError(string.Empty, "Some error");

            // act
            var result = controller.RemoveTag(model);

            // assert
            Assert.IsAssignableFrom <RedirectToActionResult>(result.Result);
            var actionName = (result.Result as RedirectToActionResult)?.ActionName;

            Assert.True(actionName != null && actionName.Equals(nameof(DestinationController.All), StringComparison.CurrentCultureIgnoreCase));
            destinationServiceMock.VerifyAll();
            tagServiceMock.VerifyAll();
        }
コード例 #2
0
        public void RemoveTag_On_Success()
        {
            // arrange
            var destinationServiceMock = new Mock <IDestinationService>(MockBehavior.Strict);
            var tagServiceMock         = new Mock <ITagService>(MockBehavior.Strict);

            var tempDataMock = new Mock <ITempDataDictionary>();
            var controller   = new DestinationController(destinationServiceMock.Object, tagServiceMock.Object)
            {
                TempData = tempDataMock.Object
            };

            int destinationId = 1;
            int tagId         = 2;
            var model         = new RemoveTagRequestModel {
                DestinationId = destinationId, TagId = tagId
            };

            destinationServiceMock.Setup(s => s.ExistsAsync(destinationId)).ReturnsAsync(true);
            destinationServiceMock.Setup(s => s.RemoveTagAsync(destinationId, tagId)).ReturnsAsync(true);
            tagServiceMock.Setup(s => s.ExistsAsync(tagId)).ReturnsAsync(true);

            // act
            var result = controller.RemoveTag(model);

            // assert
            Assert.IsAssignableFrom <RedirectToActionResult>(result.Result);
            var castedResult = result.Result as RedirectToActionResult;
            var actionName   = castedResult?.ActionName;

            Assert.True(actionName != null && actionName.Equals(nameof(DestinationController.Details), StringComparison.CurrentCultureIgnoreCase));
            Assert.True(castedResult.RouteValues.Count == 1);
            Assert.True(castedResult.RouteValues.ContainsKey("id"));
            Assert.True(Convert.ToInt32(castedResult.RouteValues["id"]) == destinationId);
            destinationServiceMock.VerifyAll();
            tagServiceMock.VerifyAll();
        }