public void DoSumming_UsingRomanNumbersAsLeftAndRightOperand_DisplaysSummingResult() { SummingModel summingModel = new SummingModel {LeftOperand = "MD", RightOperand = "LX"}; SummingController summingController = new SummingController(); ViewResult viewResult = (ViewResult) summingController.DoSumming(summingModel); Assert.AreEqual("MDLX", viewResult.ViewBag.SummingResult); }
public void DoSumming_UsingInvalidRomanNumberAsRightOperand_DisplaysError() { SummingModel summingModel = new SummingModel {LeftOperand = "MD", RightOperand = "IIII"}; SummingController summingController = new SummingController(); summingController.DoSumming(summingModel); Assert.IsTrue(summingController.ModelState.ContainsKey("RightOperand")); }
public void DoSumming_UsingMissingRightOperand_DisplaysError() { SummingModel summingModel = new SummingModel {LeftOperand = "leftoperand"}; SummingController summingController = new SummingController(); summingController.DoSumming(summingModel); Assert.IsTrue(summingController.ModelState.ContainsKey("RightOperand")); }
public ActionResult DoSumming(SummingModel model) { if (ModelState.IsValid) { bool hasErrors = false; RomanNumber leftOperand; RomanNumber rightOperand; if (!RomanNumber.TryParse(model.LeftOperand, out leftOperand)) { ModelState.AddModelError("LeftOperand", string.Format("'{0}' is not a valid Roman number", model.LeftOperand)); hasErrors = true; } if (!RomanNumber.TryParse(model.RightOperand, out rightOperand)) { ModelState.AddModelError("RightOperand", string.Format("'{0}' is not a valid Roman number", model.RightOperand)); hasErrors = true; } if (!hasErrors) { Abacus abacus = new RomanAbacus(100); // Roman abacus wil be able to handle hundreds of thousands ViewBag.SummingResult = abacus.PerformSumming(model.LeftOperand, model.RightOperand); } } InitSummingView(); return View("Index", model); }