public void TestEditGetRedirectsWhenCategoryNotFound() { #region Arrange var fakeCategories = new FakeCategories(); fakeCategories.Records(3, CategoryRepository); #endregion Arrange #region Act Controller.Edit(4) .AssertActionRedirect() .ToAction<SurveyController>(a => a.Index()); #endregion Act #region Assert Assert.AreEqual("Category not found to edit.", Controller.Message); #endregion Assert }
public void TestEditGetRedirectsWhenNotCurrentVersion() { #region Arrange var categories = new List<Category>(); for (int i = 0; i < 3; i++) { categories.Add(CreateValidEntities.Category(i+1)); } categories[1].IsCurrentVersion = false; var fakeCategories = new FakeCategories(); fakeCategories.Records(0, CategoryRepository, categories); #endregion Arrange #region Act Controller.Edit(2) .AssertActionRedirect() .ToAction<ErrorController>(a => a.Index()); #endregion Act #region Assert Assert.AreEqual("Category is not Current", Controller.Message); #endregion Assert }
public void TestEditGetReturnsView1() { #region Arrange var categories = new List<Category>(); for (int i = 0; i < 3; i++) { categories.Add(CreateValidEntities.Category(i + 1)); } categories[1].IsCurrentVersion = false; categories[2].Survey = CreateValidEntities.Survey(3); var fakeCategories = new FakeCategories(); fakeCategories.Records(0, CategoryRepository, categories); var answers = new List<Answer>(); for (int i = 0; i < 3; i++) { answers.Add(CreateValidEntities.Answer(i+1)); } answers[1].Category = CategoryRepository.GetNullableById(3); var fakeAnswers = new FakeAnswers(); fakeAnswers.Records(0, AnswerRepository, answers); #endregion Arrange #region Act var result = Controller.Edit(3) .AssertViewRendered() .WithViewData<CategoryViewModel>(); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual("Name3", result.Survey.Name); Assert.AreEqual("Name3", result.Category.Name); Assert.IsTrue(result.HasRelatedAnswers); #endregion Assert }
public void TestEditPostWithValidDataAndVersioningRedirects1() { #region Arrange var categories = new List<Category>(); for (int i = 0; i < 3; i++) { categories.Add(CreateValidEntities.Category(i + 1)); } var fakeCategories = new FakeCategories(); fakeCategories.Records(0, CategoryRepository, categories); var categoryToEdit = CreateValidEntities.Category(3); categoryToEdit.SetIdTo(3); categoryToEdit.Name = "Updated"; var answers = new List<Answer>(); for (int i = 0; i < 3; i++) { answers.Add(CreateValidEntities.Answer(i + 1)); } answers[1].Category = CategoryRepository.GetNullableById(3); var fakeAnswers = new FakeAnswers(); fakeAnswers.Records(0, AnswerRepository, answers); #endregion Arrange #region Act var result = Controller.Edit(3, categoryToEdit) .AssertActionRedirect() .ToAction<CategoryController>(a => a.Edit(9)); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual("Category Edited Successfully", Controller.Message); Assert.AreEqual(3, result.RouteValues["id"]); CategoryRepository.AssertWasCalled(a => a.EnsurePersistent(Arg<Category>.Is.Anything)); var args = (Category)CategoryRepository.GetArgumentsForCallsMadeOn(a => a.EnsurePersistent(Arg<Category>.Is.Anything))[0][0]; Assert.AreEqual("Updated", args.Name); #endregion Assert }
public void TestEditPostWithInvalidDataReturnsView() { #region Arrange var categories = new List<Category>(); for (int i = 0; i < 3; i++) { categories.Add(CreateValidEntities.Category(i + 1)); } var fakeCategories = new FakeCategories(); fakeCategories.Records(0, CategoryRepository, categories); var categoryToEdit = CreateValidEntities.Category(3); categoryToEdit.SetIdTo(3); categoryToEdit.Name = string.Empty; var answers = new List<Answer>(); for (int i = 0; i < 3; i++) { answers.Add(CreateValidEntities.Answer(i + 1)); } answers[1].Category = CategoryRepository.GetNullableById(1); var fakeAnswers = new FakeAnswers(); fakeAnswers.Records(0, AnswerRepository, answers); #endregion Arrange #region Act var result = Controller.Edit(3, categoryToEdit) .AssertViewRendered() .WithViewData<CategoryViewModel>(); #endregion Act #region Assert Assert.IsNotNull(result); Assert.AreEqual("Unable to Edit Category", Controller.Message); Controller.ModelState.AssertErrorsAre("The Name field is required."); Assert.AreEqual(string.Empty, result.Category.Name); Assert.IsFalse(result.HasRelatedAnswers); #endregion Assert }