public void GetEditJourney_NotNullEmployee_View()
        {
            //Arrange
            JourneyController controller = new JourneyController(mock.Object);

            //Act
            var result = controller.EditJourney(1, "a") as ViewResult;

            //Assert
            Assert.AreEqual("", result.ViewName);
            Assert.AreEqual("a", result.ViewBag.SearchString);
        }
        public void GetEditJourney_correctID_View()
        {
            //Arrange
            JourneyController controller = new JourneyController(mock.Object);
            //Act
            var result = controller.EditJourney(1, "");

            //Assert

            Assert.IsInstanceOf(typeof(ViewResult), result);
            Assert.AreEqual("", ((ViewResult)result).ViewName);
            Assert.AreEqual(1, ((ViewResult)result).ViewBag.ID);
            Assert.AreEqual("", ((ViewResult)result).ViewBag.SearchString);
        }
        public void PostEditJourney_ValidJourneyAndsearchString_View()
        {
            //Arrange
            JourneyController controller = new JourneyController(mock.Object);

            //Act
            var     result  = controller.EditJourney(1, new DateTime(2014, 02, 27), "x") as ViewResult;
            Journey journey = (from journ in mock.Object.Journeys where journ.JourneyID == 1 select journ).FirstOrDefault();

            //Assert
            mock.Verify(j => j.SaveJourney(journey), Times.Once);
            Assert.AreEqual("TableViewJourneyAndOvertimeData", result.ViewName);
            Assert.AreEqual("x", result.ViewBag.SearchString);
            Assert.AreEqual(new DateTime(2014, 02, 27), journey.ReclaimDate);
        }
        public void PostEditJourney_InvalidJourney_View()
        {
            //Arrange
            Journey           journey    = new Journey();
            JourneyController controller = new JourneyController(mock.Object);

            //Act
            controller.ModelState.AddModelError("error", "error");
            var result = controller.EditJourney(1500, new DateTime(2014, 02, 27), "");

            //Assert
            mock.Verify(m => m.SaveJourney(journey), Times.Never);
            Assert.IsInstanceOf(typeof(ViewResult), result);
            Assert.IsTrue(controller.ViewData.ModelState.Count == 1, "error");
        }
        public void PostEdit_ValidModelConcurrency_ErrorReturned()
        {
            //Arrange
            JourneyController controller = new JourneyController(mock.Object);

            mock.Setup(m => m.SaveJourney(It.IsAny <Journey>())).Throws(new DbUpdateConcurrencyException());
            string modelError = "The record you attempted to edit "
                                + "was modified by another user after you got the original value. The "
                                + "edit operation was canceled.";

            //Act
            JsonResult result = (JsonResult)controller.EditJourney(1, new DateTime(2014, 02, 02), "");
            string     data   = (string)(new Microsoft.VisualStudio.TestTools.UnitTesting.PrivateObject(result.Data, "error")).Target;

            //Assert
            mock.Verify(d => d.SaveJourney(It.IsAny <Journey>()), Times.Once());
            Assert.AreEqual(typeof(JsonResult), result.GetType());
            Assert.AreEqual(modelError, data);
        }