public async Task Details_ReturnViewResult_With_Document()
        {
            // Arrange
            Document tempDoc = new Document
            {
                DocumentId   = 1,
                DocumentName = "Meh"
            };
            Mock <IUserRepository> mockUserRepo = new Mock <IUserRepository>();

            Mock <IDocumentRepository> mockDocRepo = new Mock <IDocumentRepository>();

            mockDocRepo.Setup(repo => repo.GetDocumentByIdAsync(1))
            .ReturnsAsync(tempDoc);

            DocumentsController controller = new DocumentsController(mockUserRepo.Object,
                                                                     mockDocRepo.Object);

            // Act
            IActionResult result = await controller.Details(tempDoc.DocumentId);

            // Assert
            ViewResult viewResult = Assert.IsType <ViewResult>(result);
            Document   model      = Assert.IsAssignableFrom <Document>(
                viewResult.ViewData.Model);
        }
        public async Task Index_ReturnViewResult_With_Documents()
        {
            // Arrange
            ApplicationUser user = new ApplicationUser
            {
                Id = "ids"
            };
            Mock <IUserRepository> mockUserRepo = new Mock <IUserRepository>();
            HttpContext            temp         = null;

            mockUserRepo.Setup(repo => repo.getUserFromHttpContextAsync(temp))
            .ReturnsAsync(user);

            Mock <IDocumentRepository> mockDocRepo = new Mock <IDocumentRepository>();

            mockDocRepo.Setup(repo => repo.GetDocumentsOfCurrentUser(user.Id))
            .Returns(GetDocumentsOfCurrentUser());

            DocumentsController controller = new DocumentsController(
                mockUserRepo.Object, mockDocRepo.Object);

            // Act
            IActionResult result = await controller.Index();

            // Assert
            ViewResult             viewResult = Assert.IsType <ViewResult>(result);
            IEnumerable <Document> model      = Assert.IsAssignableFrom <IEnumerable <Document> >(
                viewResult.ViewData.Model);

            Assert.Equal(10, model.Count());
        }
예제 #3
0
        public void ContactView_View_Message()
        {
            HomeController hc = new HomeController();

            Microsoft.AspNetCore.Mvc.ViewResult vr = hc.About() as Microsoft.AspNetCore.Mvc.ViewResult;
            Assert.AreEqual(vr.ViewData["Message"], "Your application description page.");
        }
        public void Test_About_Home_Message()
        {
            // Arrange
            HomeController controller = new HomeController();
            // Act
            ViewResult result = controller.About() as ViewResult;

            // Assert
            Assert.Equal("Your application description page.", result.ViewData["Message"]);
        }
        public void Test_Contact_Home()
        {
            // Arrange
            HomeController homeController = new HomeController();
            // Act
            ViewResult result = homeController.About() as ViewResult;

            // Assert
            Assert.NotNull(result);
        }
        public void Test_Contact_Home_Message()
        {
            // Arrange
            HomeController controller = new HomeController();
            // Act
            ViewResult result = controller.Contact() as ViewResult;

            // Assert
            Assert.Equal("Your contact page.", result.ViewData["Message"]);
        }
        public void Test_Privacy_Home()
        {
            // Arrange
            HomeController homeController = new HomeController();
            // Act
            ViewResult result = homeController.Privacy() as ViewResult;

            // Assert
            Assert.NotNull(result);
        }
        public void Test_Index_Home()
        {
            // var homeController = new HomeController();
            // var result = homeController.Index() as ViewResult;
            // Assert.Equal("Index", result.ViewName);

            // Arrange
            HomeController homeController = new HomeController();
            // Act
            ViewResult result = homeController.Index() as ViewResult;

            // Assert
            Assert.NotNull(result);
        }
예제 #9
0
        public async Task ExecuteResultAsync_Throws_IfViewCouldNotBeFound_MessageUsesFindViewLocations()
        {
            // Arrange
            var viewName      = "MyView";
            var actionContext = GetActionContext();
            var expected      = string.Join(
                Environment.NewLine,
                $"The view '{viewName}' was not found. The following locations were searched:",
                "Location1",
                "Location2",
                "Location3",
                "Location4");

            var viewEngine = new Mock <IViewEngine>(MockBehavior.Strict);

            viewEngine
            .Setup(v => v.GetView(/*executingFilePath*/ null, viewName, /*isMainPage*/ true))
            .Returns(ViewEngineResult.NotFound(viewName, new[] { "Location1", "Location2" }))
            .Verifiable();

            viewEngine
            .Setup(v => v.FindView(It.IsAny <ActionContext>(), viewName, /*isMainPage*/ true))
            .Returns(ViewEngineResult.NotFound(viewName, new[] { "Location3", "Location4" }))
            .Verifiable();

            var viewResult = new ViewResult
            {
                ViewEngine = viewEngine.Object,
                ViewName   = viewName,
                ViewData   = new ViewDataDictionary(new EmptyModelMetadataProvider()),
                TempData   = Mock.Of <ITempDataDictionary>(),
            };

            // Act and Assert
            var ex = await Assert.ThrowsAsync <InvalidOperationException>(
                () => viewResult.ExecuteResultAsync(actionContext));

            Assert.Equal(expected, ex.Message);
            viewEngine.Verify();
        }
        public async Task Create_ReturnsViewResult_When_InValidModelIsGiven()
        {
            // Arrange
            Mock <IFormFile> mockResumeFormFile = new Mock <IFormFile>();

            mockResumeFormFile.Setup(file => file.Length)
            .Returns(0);


            DocumentViewModel tempDocumentVM = new DocumentViewModel
            {
                DocumentName = "new DocumentViewModel",
                Resume       = mockResumeFormFile.Object
            };


            ApplicationUser user = new ApplicationUser
            {
                Id = "ids"
            };
            Mock <IUserRepository> mockUserRepo = new Mock <IUserRepository>();
            HttpContext            temp         = null;

            mockUserRepo.Setup(repo => repo.getUserFromHttpContextAsync(temp))
            .ReturnsAsync(user);

            Mock <IDocumentRepository> mockDocumentRepo = new Mock <IDocumentRepository>();

            mockDocumentRepo.Setup(repo => repo.SaveDocumentToUser(tempDocumentVM, user))
            .ReturnsAsync(false);

            DocumentsController controller = new DocumentsController(mockUserRepo.Object,
                                                                     mockDocumentRepo.Object);

            // Act
            IActionResult result = await controller.Create(tempDocumentVM);

            // Assert
            ViewResult viewResult = Assert.IsType <ViewResult>(result);
        }
예제 #11
0
        /// <summary>
        /// Render view and Return The HTML Content
        /// </summary>
        /// <param name="controller">Controller</param>
        /// <param name="viewName">View name</param>
        /// <param name="model">Model</param>
        /// <param name="masterName">Master name</param>
        /// <param name="partialView">Whether is partial view</param>
        /// <returns>Return view string</returns>
        public static async Task <string> RenderViewContentAsync(this Controller controller, string viewName, object model, string masterName, bool partialView = false)
        {
            controller.ViewData.Model = model;
            using (var sw = new StringWriter())
            {
                var actionContext = new ActionContext(controller.HttpContext, controller.RouteData, new ActionDescriptor());
                if (partialView)
                {
                    PartialViewResult partialViewResult = new PartialViewResult()
                    {
                        ViewData = controller.ViewData,
                        TempData = controller.TempData,
                        ViewName = viewName
                    };
                    var partialViewExecutor = controller.HttpContext.RequestServices.GetRequiredService <IActionResultExecutor <PartialViewResult> >() as PartialViewResultExecutor;
                    var pView        = partialViewExecutor.FindView(actionContext, partialViewResult).View;
                    var pviewContext = new ViewContext(actionContext, pView, partialViewResult.ViewData, partialViewResult.TempData, sw, new HtmlHelperOptions());
                    await pView.RenderAsync(pviewContext).ConfigureAwait(false);

                    return(sw.GetStringBuilder().ToString());
                }

                ViewResult viewResult = new ViewResult()
                {
                    ViewData = controller.ViewData,
                    TempData = controller.TempData,
                    ViewName = viewName
                };
                var viewExecutor = controller.HttpContext.RequestServices.GetRequiredService <ViewResultExecutor>();
                var view         = viewExecutor.FindView(actionContext, viewResult).View;
                var viewContext  = new ViewContext(actionContext, view, viewResult.ViewData, viewResult.TempData, sw, new HtmlHelperOptions());
                await view.RenderAsync(viewContext).ConfigureAwait(false);

                return(sw.GetStringBuilder().ToString());
            }
        }
예제 #12
0
        /// <summary>
        /// 转换成Html
        /// </summary>
        /// <param name="result">视图结果</param>
        /// <param name="httpContext">Http上下文</param>
        public static string ToHtml(this ViewResult result, HttpContext httpContext)
        {
            var feature           = httpContext.Features.Get <IRoutingFeature>();
            var routeData         = feature.RouteData;
            var viewName          = result.ViewName ?? routeData.Values["action"] as string;
            var actionContext     = new ActionContext(httpContext, routeData, new CompiledPageActionDescriptor());
            var options           = httpContext.RequestServices.GetRequiredService <IOptions <MvcViewOptions> >();
            var htmlHelperOptions = options.Value.HtmlHelperOptions;
            var viewEngineResult  = result.ViewEngine?.FindView(actionContext, viewName, true) ?? options.Value
                                    .ViewEngines.Select(x => x.FindView(actionContext, viewName, true))
                                    .FirstOrDefault(x => x != null);
            var view    = viewEngineResult.View;
            var builder = new StringBuilder();

            using (var output = new StringWriter(builder))
            {
                var viewContext = new ViewContext(actionContext, view, result.ViewData, result.TempData, output,
                                                  htmlHelperOptions);

                view.RenderAsync(viewContext).GetAwaiter().GetResult();
            }

            return(builder.ToString());
        }
예제 #13
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void HelpTest()
 {
     res = h.Help();
     Assert.AreEqual("Help", res.ViewName);
 }
예제 #14
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void DatabaseConnectionTest()
 {
     res = h.DatabaseConnection();
     Assert.AreEqual("DatabaseConnection", res.ViewName);
 }
예제 #15
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void MainPageTest()
 {
     res = h.MainPage();
     Assert.AreEqual("MainPage", res.ViewName);
 }
예제 #16
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Data_maskingTest()
 {
     res = h.Data_masking();
     Assert.AreEqual("data_masking", res.ViewName);
 }
예제 #17
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Remove_duplicatesTest()
 {
     res = h.Remove_duplicates();
     Assert.AreEqual("remove_duplicates", res.ViewName);
 }
예제 #18
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Create_restrictionsTest()
 {
     res = h.Create_restrictions();
     Assert.AreEqual("create_restrictions", res.ViewName);
 }
예제 #19
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Create_masksTest()
 {
     res = h.Create_masks();
     Assert.AreEqual("create_masks", res.ViewName);
 }
예제 #20
0
            public void AllSurveyView()
            {
                ViewResult result = _conn.SubmitSurvey() as ViewResult;

                AssertViewResultIs(nameof(_conn.SubmitSurvey), result);
            }
예제 #21
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Improve_datatypesTest()
 {
     res = h.Improve_datatypes();
     Assert.AreEqual("improve_datatypes", res.ViewName);
 }
예제 #22
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Missing_valuesTest()
 {
     res = h.Missing_values();
     Assert.AreEqual("missing_values", res.ViewName);
 }
예제 #23
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void RestrictionsTest()
 {
     res = h.Restrictions();
     Assert.AreEqual("restrictions", res.ViewName);
 }
예제 #24
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void SelectionTest()
 {
     res = h.Selection();
     Assert.AreEqual("Selection", res.ViewName);
 }
예제 #25
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void PerformanceTest()
 {
     res = h.Performance();
     Assert.AreEqual("Performance", res.ViewName);
 }
예제 #26
0
            public void IndexList()
            {
                ViewResult result = _conn.Index() as ViewResult;

                AssertViewResultIs(nameof(_conn.Index), result);
            }
예제 #27
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Primary_keysTest()
 {
     res = h.Primary_keys();
     Assert.AreEqual("primary_keys", res.ViewName);
 }
예제 #28
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Data_unificationTest()
 {
     res = h.Data_unification();
     Assert.AreEqual("data_unification", res.ViewName);
 }
예제 #29
0
 protected void AssertViewResultIs(string action, ViewResult viewResult)
 {
     Assert.IsTrue(viewResult.ViewName == null ||
                   viewResult.ViewName.Equals(action, StringComparison.InvariantCultureIgnoreCase),
                   $"Result.ViewName was {viewResult.ViewName}, but expected null or {action}.");
 }
예제 #30
0
파일: Tests.cs 프로젝트: AaronRBG/TFG
 public void Foreign_keysTest()
 {
     res = h.Foreign_keys();
     Assert.AreEqual("foreign_keys", res.ViewName);
 }