public void Index_SyncRequest_AsksForIndexView()
        {
            Mock <AnnualLeaveService> mock       = new Mock <AnnualLeaveService>();
            AnnualLeaveController     controller = GetNewAnnualLeaveControllerWithControllerContext(mock.Object, null);

            ViewResult result = controller.Index(null, null) as ViewResult;

            Assert.AreEqual("Index", result.ViewName);
        }
        public void Index_AsyncRequest_JsonRequestBehaviorEqualsAllowGet()
        {
            Mock <AnnualLeaveService> mock       = new Mock <AnnualLeaveService>();
            AnnualLeaveController     controller = GetNewAnnualLeaveControllerWithControllerContext(mock.Object, null, true);

            JsonResult result = controller.Index(null, null) as JsonResult;

            Assert.AreEqual(JsonRequestBehavior.AllowGet, result.JsonRequestBehavior);
        }
        public void Index_SyncRequest_RetrievesAnnualLeavesPropertyFromModel()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.GetPage(It.IsAny <IEnumerable <AnnualLeaveDTO> >(), It.IsAny <int>())).Returns(new AnnualLeaveDTO[] {
                new AnnualLeaveDTO {
                    Id = 7
                }
            });
            AnnualLeaveController controller = GetNewAnnualLeaveControllerWithControllerContext(mock.Object, null);

            ViewResult result = controller.Index(null, null) as ViewResult;

            AnnualLeaveListViewModel model = result.ViewData.Model as AnnualLeaveListViewModel;

            Assert.AreEqual(1, model.AnnualLeaves.Count());
            Assert.AreEqual(7, model.AnnualLeaves.FirstOrDefault().Id);
        }
        public void Index_SyncRequest_RetrievesPageInfoPropertyFromModel()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.PageInfo).Returns(new PageInfo()
            {
                TotalItems = 9, PageSize = 3, PageNumber = 3
            });
            AnnualLeaveController controller = GetNewAnnualLeaveControllerWithControllerContext(mock.Object, null);

            ViewResult result = controller.Index(null, null) as ViewResult;

            AnnualLeaveListViewModel model = result.ViewData.Model as AnnualLeaveListViewModel;

            Assert.AreEqual(9, model.PageInfo.TotalItems);
            Assert.AreEqual(3, model.PageInfo.PageSize);
            Assert.AreEqual(3, model.PageInfo.PageNumber);
            Assert.AreEqual(3, model.PageInfo.TotalPages);
        }
        public void Index_AsyncRequest_RetrievesAnnualLeavesPropertyFromModel()
        {
            Mock <AnnualLeaveService> mock = new Mock <AnnualLeaveService>();

            mock.Setup(m => m.GetPage(It.IsAny <IEnumerable <AnnualLeaveDTO> >(), It.IsAny <int>())).Returns(new AnnualLeaveDTO[] {
                new AnnualLeaveDTO {
                    Id       = 7,
                    Employee = new EmployeeDTO {
                        Post = new PostDTO {
                            Department = new DepartmentDTO()
                        }
                    }
                }
            });
            AnnualLeaveController controller = GetNewAnnualLeaveControllerWithControllerContext(mock.Object, null, true);

            JsonResult result      = controller.Index(null, null) as JsonResult;
            object     AnnualLeave = (result.Data.GetType().GetProperty("AnnualLeaves").GetValue(result.Data) as object[])[0];
            int        id          = (int)AnnualLeave.GetType().GetProperty("Id").GetValue(AnnualLeave);

            Assert.AreEqual(7, id);
        }