public void DepartmentController_Create_Get_Successfull()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Create();

            //assert
            Assert.IsInstanceOfType(result, typeof(ViewResult));

            result = null;
        }
        public void DepartmentController_Details_Successfull()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Details(1);

            //assert
            Assert.IsTrue(objMockRepository.IsFindCalled);
            Assert.IsInstanceOfType(((ViewResult)result).Model, typeof(Department));

            result = null;
        }
        public void DepartmentController_Index_Successfull()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Index();

            //assert
            Assert.IsTrue(objMockRepository.IsListCalled);
            Assert.IsInstanceOfType(((ViewResult)result).Model, typeof(IList <Department>));

            result = null;
        }
        public void DepartmentController_Edit_Get_ID_Not_Found()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Edit(99);

            //assert
            Assert.IsTrue(objMockRepository.IsFindCalled);
            Assert.IsInstanceOfType(result, typeof(System.Web.Mvc.HttpNotFoundResult));

            result = null;
        }
        public void DepartmentController_Delete_Post_Successfull()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.DeleteConfirmed(1);

            //assert
            Assert.IsTrue(objMockRepository.IsDeleteCalled);
            Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));

            result = null;
        }
        public void DepartmentController_Delete_Get_Missing_ID()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Delete(0);

            //assert
            Assert.IsInstanceOfType(result, typeof(System.Web.Mvc.HttpNotFoundResult));
            Assert.IsFalse(objMockRepository.IsFindCalled);

            result = null;
        }
        public void DepartmentController_Details_Missing_ID()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var result = objController.Details(0);
            var view   = (ViewResult)result;

            //assert
            Assert.AreEqual(view.ViewBag.Message, "Missing id value", "Id should not be 0");
            Assert.IsFalse(objMockRepository.IsFindCalled);

            result = null;
        }
        public void DepartmentController_Edit_Post_NullDepartment()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);
            Department department = null;

            //act
            var result = objController.Edit(department);

            //assert
            Assert.IsFalse(objMockRepository.IsStoreCalled);
            Assert.IsInstanceOfType(result, typeof(System.Web.Mvc.HttpNotFoundResult));

            result = null;
        }
        public void DepartmentController_Edit_Post_ModelStateInvalid()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);
            objController.ModelState.AddModelError("", "mock error message");
            var department = new Department();

            //act
            var result = objController.Edit(department);

            //assert
            Assert.IsFalse(objMockRepository.IsStoreCalled);
            Assert.IsInstanceOfType(result, typeof(ViewResult));
            Assert.IsInstanceOfType(((ViewResult)result).Model, typeof(Department));

            result = null;
        }
        public void DepartmentController_Create_Post_Successfull()
        {
            //arrange
            objMockRepository = new Mocks.MockDepartmentRepository();
            objController     = new DepartmentController(objMockRepository);

            //act
            var department = new Department {
                DepartmentId = 7, Name = "CleanUp", Description = "This place is a mess", Address = "4445 East Lansing Road", City = "Salt Lake City", State = "UT", PostalCode = "29854", IsActive = true, IsDeleted = false
            };
            var result = objController.Create(department);

            //assert
            Assert.IsTrue(objMockRepository.IsStoreCalled);
            Assert.IsInstanceOfType(result, typeof(RedirectToRouteResult));

            result = null;
        }
 public void TestCleanUp()
 {
     objMockRepository = null;
     objController     = null;
 }