public void CreateTest_HttpPost()
        {
            var department = new Department { Name = "new", Id = "2" };
            _repository.Expect(x => x.Save(department));
            var result = _controller.Create(department);
            _repository.VerifyAllExpectations();
            var redirect = result.AssertWasRedirectResult("Details");

            Assert.That(redirect.RouteValues["id"], Is.EqualTo(department.Id));
        }
        public ActionResult Create(Department model )
        {
            try
            {
                _repository.Save(model);

                return RedirectToAction("Details", new { id = model.Id});
            }
            catch
            {
                return View();
            }
        }
        public void CreateTest_HttpPostWithExctpion()
        {
            var organisation = new Department { Name = "new", Id = "2" };
            _repository.Expect(x => x.Save(organisation))
                .Throw(new Exception());

            // Act
            var result = _controller.Create(organisation);

            // Assert
            _repository.VerifyAllExpectations();
            result.AssertWasViewResult();
        }
        public ActionResult Edit(string id, Department model)
        {
            try
            {
                var existing = _repository.Get(id);

                UpdateModel(existing);

                _repository.Save(existing);
                return RedirectToAction("Details", new {id});
            }
            catch
            {
                return View(model);
            }
        }
        public void DetailsTest()
        {
            var id = "3";
            Department organisation = new Department
            {
                Name = "33",
            };
            _repository.Expect(x => x.Get(id))
                .Return(organisation);

            var result = _controller.Details(id);

            _repository.VerifyAllExpectations();
            var viewResult = result.AssertWasViewResult(typeof(Department));

            Assert.That(viewResult.Model, Is.EqualTo(organisation));
        }
        public void EditTest_HttpPost_WithExcetpion()
        {
            string id = "2";
            var organisation = new Department { Name = "new", Id = "2" };

            _repository.Expect(x => x.Get(id))
                .Return(organisation);

            _repository.Expect(x => x.Save(organisation))
                .IgnoreArguments()
                .Throw(new Exception());

            var result = _controller.Edit(id, new Department());
            _repository.VerifyAllExpectations();
            result.AssertWasViewResult(typeof(Department));
        }
        public void EditTest_HttpPost()
        {
            string id = "2";
            var organisation = new Department { Name = "new", Id = "2" };

            _repository.Expect(x => x.Get(id))
                .Return(organisation);

            _repository.Expect(x => x.Save(organisation))
                .IgnoreArguments();

            var result = _controller.Edit(id, null);
            _repository.VerifyAllExpectations();
            var redirect = result.AssertWasRedirectResult("Details");

            Assert.That(redirect.RouteValues["id"], Is.EqualTo(organisation.Id));
        }