//[ValidateInput(true)] public ActionResult GenerateSequences(GetSequenceInputViewModel inputVM) { //if (!ModelState.IsValid) return RedirectToAction("Index"); var seqViewModel = new NumericSequenceViewModel(); //var sequenceGenerators = GetSequenceGenerators().ToList(); var sequenceGenerators = _sequenceGeneratorFactory.GetSequenceGenerators(); try { sequenceGenerators.ForEach(t => { seqViewModel.Sequences.Add(t.Name, t.GetSequence(inputVM.Input)); }); seqViewModel.Limit = inputVM.Input; } catch (Exception ex) { ViewBag.StatusMessage = ex.Message; ViewBag.Status = "Invalid"; } ViewBag.GetSequenceInputViewModel = inputVM; return View(seqViewModel); }
public void SequenceCalculationController_GenerateSequences_Can_CreateSequenceGenerators_And_InvokeGetSequence() { //Arrange ISequenceGeneratorFactory mockFactory = MockRepository.GenerateMock<ISequenceGeneratorFactory>(); ISequenceGenerator mockGenerator = MockRepository.GenerateMock<ISequenceGenerator>(); SequenceCalculationController controller = new SequenceCalculationController(mockFactory); List<ISequenceGenerator> generators = new List<ISequenceGenerator>(); generators.Add(mockGenerator); GetSequenceInputViewModel inputVM = new GetSequenceInputViewModel(); inputVM.Input = 10; mockFactory.Expect(f => f.GetSequenceGenerators()) .Return(generators); mockGenerator.Expect(g => g.Name).Return("Test Sequence"); string[] testSequence = { "1", "2", "3"}; mockGenerator.Expect(g => g.GetSequence(inputVM.Input)).Return(testSequence); //Act ViewResult result = controller.GenerateSequences(inputVM) as ViewResult; //Assert mockFactory.VerifyAllExpectations(); mockGenerator.VerifyAllExpectations(); Assert.AreEqual(inputVM, result.ViewBag.GetSequenceInputViewModel); Assert.AreEqual(1, ((NumericSequenceViewModel)(result.ViewData.Model)).Sequences.Count); Assert.IsTrue(((Dictionary<string, IEnumerable<string>>)(((NumericSequenceViewModel)(result.ViewData.Model)).Sequences)).ContainsKey("Test Sequence")); Assert.AreEqual(testSequence, ((Dictionary<string, IEnumerable<string>>)(((NumericSequenceViewModel)(result.ViewData.Model)).Sequences))["Test Sequence"]); }