コード例 #1
0
        public async Task UpdateFolderAsync_InvalidFolderNamePostRequest_Handle()
        {
            var model = new FolderWriteViewModel()
            {
                Slug         = GroupSlugValid,
                FolderId     = FolderIdValid,
                FolderName   = null,
                ParentGroup  = GroupIdInvalid,
                ParentFolder = null,
                Description  = null
            };

            SetUserInContext.SetContext("admin");
            SetRouting <FolderController> .SetupController(_folderController, "GroupUrls", "routeUrl", "routeController", "routeAction");

            _folderServiceMocks.Setup(x => x.UserHasFolderWriteAccessAsync(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(true));

            _folderServiceMocks.Setup(x => x.GetFolderAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new FolderViewModel()
            {
                Folder = new FolderReadViewModel()
                {
                    FolderId = FolderIdValid
                }
            }));
            _folderServiceMocks.Setup(x => x.IsFolderNameValidAsync(It.IsAny <Guid?>(), It.IsAny <string>(), It.IsAny <Guid?>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(false));

            var result = (await _folderController.UpdateFolderAsync(model, CancellationToken.None)) as ViewResult;
            var returnedErrorMessage = result.ViewData.ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage;

            Assert.IsInstanceOf <ActionResult>(result);
            Assert.IsInstanceOf <FolderWriteViewModel>(result.Model);
            Assert.AreEqual(DuplicateFolderError, returnedErrorMessage);
        }
コード例 #2
0
        public async Task UpdateFolderAsync_InvalidModelPostRequest_Handle()
        {
            var model = new FolderWriteViewModel()
            {
                Slug         = GroupSlugInvalid,
                FolderName   = FolderNameValid,
                Description  = FolderDescription,
                ParentGroup  = GroupIdValid,
                ParentFolder = null,
            };

            _folderController.ModelState.AddModelError("error", "invalid state");
            SetUserInContext.SetContext("admin");
            SetRouting <FolderController> .SetupController(_folderController, "GroupUrls", "routeUrl", "routeController", "routeAction");

            _folderServiceMocks.Setup(x => x.IsUserAdminAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(true));

            var result = (await _folderController.UpdateFolderAsync(model, CancellationToken.None)) as ViewResult;
            var returnedViewModelSlug          = (result.Model as FolderWriteViewModel).Slug;
            var returnedViewModelParentGroupId = (result.Model as FolderWriteViewModel).ParentGroup;

            Assert.IsInstanceOf <ActionResult>(result);
            Assert.IsInstanceOf <FolderWriteViewModel>(result.Model);
            Assert.AreEqual(GroupSlugInvalid, returnedViewModelSlug);
            Assert.AreEqual(GroupIdValid, returnedViewModelParentGroupId);
        }
コード例 #3
0
        public async Task UpdateFolderAsync_InvalidUserGetRequest_Handle()
        {
            SetUserInContext.SetContext("user");
            SetRouting <FolderController> .SetupController(_folderController, "GroupUrls", "routeUrl", "routeController", "routeAction");

            _folderServiceMocks.Setup(x => x.UserHasFolderWriteAccessAsync(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(false));
            _folderServiceMocks.Setup(x => x.GetFolderAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new FolderViewModel()
            {
                Folder = new FolderReadViewModel(),
                Slug   = GroupSlugValid
            }));

            var result = await _folderController.UpdateFolderAsync(GroupSlugValid, GroupIdValid, FolderIdValid, null, CancellationToken.None);

            var redirectedRouteName = (result as RedirectToRouteResult).RouteName;
            var redirectedFolderId  = (result as RedirectToRouteResult).RouteValues["folder"];

            Assert.IsInstanceOf <RedirectToRouteResult>(result);
            Assert.AreEqual("GroupUrls", redirectedRouteName);
            Assert.AreNotEqual(Guid.Empty, redirectedFolderId);
        }
コード例 #4
0
        public async Task UpdateFolderAsync_ValidGetRequest_Handle()
        {
            SetUserInContext.SetContext("admin");
            SetRouting <FolderController> .SetupController(_folderController, "GroupUrls", "routeUrl", "routeController", "routeAction");

            _folderServiceMocks.Setup(x => x.UserHasFolderWriteAccessAsync(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>())).Returns(Task.FromResult(true));
            _folderServiceMocks.Setup(x => x.GetFolderAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new FolderViewModel()
            {
                Folder = new FolderReadViewModel(),
                Slug   = GroupSlugValid
            }));

            var result = (await _folderController.UpdateFolderAsync(GroupSlugValid, GroupIdValid, FolderIdValid, null, CancellationToken.None)) as ViewResult;
            var returnedViewModelSlug          = (result.Model as FolderWriteViewModel).Slug;
            var returnedViewModelParentGroupId = (result.Model as FolderWriteViewModel).ParentGroup;

            Assert.IsInstanceOf <ActionResult>(result);
            Assert.IsInstanceOf <FolderWriteViewModel>(result.Model);
            Assert.AreEqual(GroupSlugValid, returnedViewModelSlug);
            Assert.AreEqual(GroupIdValid, returnedViewModelParentGroupId);
        }
コード例 #5
0
        public async Task UpdateFolderAsync_ValidPostRequest_Handle()
        {
            var model = new FolderWriteViewModel()
            {
                Slug         = GroupSlugValid,
                FolderId     = FolderIdValid,
                FolderName   = FolderNameValid,
                Description  = FolderDescription,
                ParentGroup  = GroupIdValid,
                ParentFolder = null,
            };

            SetUserInContext.SetContext("admin");
            SetRouting <FolderController> .SetupController(_folderController, "GroupUrls", "routeUrl", "routeController", "routeAction");

            _folderServiceMocks.Setup(x => x.IsUserAdminAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(true));
            _folderServiceMocks.Setup(x => x.GetFolderAsync(It.IsAny <string>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(new FolderViewModel()
            {
                Folder = new FolderReadViewModel()
                {
                    FolderId = FolderIdValid
                }
            }));
            _folderServiceMocks.Setup(x => x.IsFolderNameValidAsync(It.IsAny <Guid?>(), It.IsAny <string>(), It.IsAny <Guid?>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .Returns(Task.FromResult(true));

            var result = await _folderController.UpdateFolderAsync(model, CancellationToken.None);

            var redirectedRouteName = (result as RedirectToRouteResult).RouteName;
            var redirectedFolderId  = (result as RedirectToRouteResult).RouteValues["folder"];

            Assert.IsInstanceOf <RedirectToRouteResult>(result);
            Assert.AreEqual("GroupUrls", redirectedRouteName);
            Assert.AreNotEqual(Guid.Empty, redirectedFolderId);
        }