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); }
public void PerformSumming_UsingInvalidRomanNumberAsRightOperand_ThrowsException() { const string leftOperand = "MMC"; const string rightOperand = "12"; RomanAbacus romanAbacus = new RomanAbacus(100); romanAbacus.PerformSumming(leftOperand, rightOperand); }
public void PerformSumming_UsingValidRomanNumbers_ReturnsCorrectResult() { const string leftOperand = "MMC"; const string rightOperand = "LX"; RomanAbacus romanAbacus = new RomanAbacus(100); string actualResult = romanAbacus.PerformSumming(leftOperand, rightOperand); Assert.AreEqual("MMCLX", actualResult); }