public ActionResult Edit(Ploidy ploidy)
 {
     if (ModelState.IsValid)
     {
         m_repo.SavePloidy(ploidy);
         return(RedirectToAction("Index"));
     }
     return(View(ploidy));
 }
        public void POSTEditHappyTest()
        {
            var ploidy = new Ploidy() { Id = 12, Name = "Banana" };
            var mockRepo = new Mock<IPlantBreedingRepo>();

            var controller = new PloidiesController(mockRepo.Object);

            var response = controller.Edit(ploidy) as RedirectToRouteResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.RouteValues);
            Assert.AreEqual("Index", response.RouteValues["action"]);
        }
        // GET: Ploidies/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ploidy ploidy = m_repo.GetPloidyById(id.Value);

            if (ploidy == null)
            {
                return(HttpNotFound());
            }
            return(View(ploidy));
        }
        public void GETEditNullTest()
        {
            int? id = 12;
            Ploidy expected = null;

            var mockRepo = new Mock<IPlantBreedingRepo>();
            mockRepo.Setup(r => r.GetPloidyById(id.Value)).Returns(expected);

            var controller = new PloidiesController(mockRepo.Object);

            var response = controller.Edit(id) as HttpNotFoundResult;

            Assert.IsNotNull(response);
            Assert.IsTrue(response.StatusCode == 404);
        }
        public ActionResult Retire(int?id)
        {
            if (!id.HasValue)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Ploidy ploidy = m_repo.GetPloidyById(id.Value);

            if (ploidy == null)
            {
                return(HttpNotFound());
            }
            ploidy.Retired = !ploidy.Retired;
            m_repo.SavePloidy(ploidy);
            return(RedirectToAction("Index"));
        }
        public void POSTEditWithBadSessionTest()
        {
            var ploidy = new Ploidy() { Id = 12, Name = "Banana" };
            var mockRepo = new Mock<IPlantBreedingRepo>();

            var controller = new PloidiesController(mockRepo.Object);
            controller.ModelState.AddModelError("test", "play them off, keyboard cat");

            var response = controller.Edit(ploidy) as ViewResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Model);
            Assert.IsNotNull(response.Model as Ploidy);

            var actual = response.Model as Ploidy;

            Assert.AreEqual(ploidy, actual);
        }
        public void DetailsHappyTest()
        {
            int? id = 1;
            var expected = new Ploidy
            {
                Id = 1,
                Name = "chacha"
            };

            var mockRepo = new Mock<IPlantBreedingRepo>();
            mockRepo.Setup(r => r.GetPloidyById(id.Value)).Returns(expected);

            var controller = new PloidiesController(mockRepo.Object);

            var response = controller.Details(id) as ViewResult;

            Assert.IsNotNull(response);
            Assert.IsNotNull(response.Model);
            Assert.IsNotNull(response.Model as Ploidy);

            var actual = response.Model as Ploidy;

            Assert.AreEqual(expected, actual);
        }