public void SaveExistingTest( [Values(PostListOrder.Date, PostListOrder.Title)] PostListOrder postListOrder) { var editMode = EditMode.Edit; var postCategoryID = "TestPostCategoryID"; var title = "A post category title"; var body = string.Empty; var postCategory = new PostCategory(); postCategory.ID = postCategoryID; postCategory.Title = "oldTitle"; postCategory.Body = "oldBody"; postCategory.PostListOrder = (PostListOrder)Int32.MaxValue; _postCategoryRepositoryMock.Expect(r => r.Get(postCategoryID)).Return(postCategory); _postCategoryRepositoryMock.Expect( r => r.SubmitChanges()) .WhenCalled( b => VerifyPostCategory(postCategory, postCategoryID, title, body, postListOrder)); var result = TestedController.Save(editMode, postCategoryID, title, body, postListOrder); VerifyRedirectToRouteResult(result, expectedAction: "Detail", expectedID: postCategoryID); }
public void SaveExistingTest( [Values(15.0, null)] double?latitude, [Values(42.0, null)] double?longitude, [Values(false, true)] bool setPositionDateTime) { var editMode = EditMode.Edit; var positionDateTime = setPositionDateTime ? new DateTime?(new DateTime(2001, 1, 1)) : null; var positionReportID = "TestPositionReportID"; var comment = "A position report comment"; var position = latitude != null && longitude != null ? new Position(latitude.Value, longitude.Value) : null; var positionReport = new PositionReport(); positionReport.ID = positionReportID; positionReport.Comment = ""; _positionReportRepositoryMock.Expect(r => r.Get(positionReportID)).Return(positionReport); _positionReportRepositoryMock.Expect( r => r.SubmitChanges()) .WhenCalled( b => VerifyPositionReport(positionReport, positionReportID, positionDateTime, comment, position)); var result = TestedController.Save(editMode, positionReportID, positionDateTime, comment, latitude, longitude); VerifyRedirectToRouteResult(result, expectedAction: "Index"); }
public void SaveWithInvalidEditModeTest() { var editMode = (EditMode)Int32.MaxValue; var postID = Guid.Empty.ToString(); var title = "A post title"; var body = string.Empty; var tags = new[] { "Tag1", "Tag2", "Tag3" }; var post = new Post(); post.ID = postID; try { var result = TestedController.Save(editMode, postID, title, body, false, null, null, null, null, tags.Concat(";"), null, null, null); Assert.Fail("ArgumentException not raised."); } catch (ArgumentException ex) { Assert.That(ex.ParamName, Is.EqualTo("editMode")); } }
public void SaveNewTest( [Values(PostListOrder.Date, PostListOrder.Title)] PostListOrder postListOrder) { var editMode = EditMode.Add; var postCategoryID = Guid.Empty.ToString(); var title = "A post category title"; var body = string.Empty; var postCategory = new PostCategory(); postCategory.ID = postCategoryID; _postCategoryRepositoryMock.Expect(r => r.Create()).Return(postCategory); _postCategoryRepositoryMock.Expect(r => r.Save(postCategory)); _postCategoryRepositoryMock.Expect( r => r.SubmitChanges()) .WhenCalled( b => VerifyPostCategory(postCategory, postCategoryID, title, body, postListOrder)); var result = TestedController.Save(editMode, postCategoryID, title, body, postListOrder); VerifyRedirectToRouteResult(result, expectedAction: "Detail", expectedID: postCategoryID); }
public void SaveExistingTest( [Values(false, true)] bool isPublished, [Values("1", null)] string categoryID, [Values(null, "2")] string newCategory, [Values(42.0, null)] double?latitude, [Values(15.0, null)] double?longitude, [Values(false, true)] bool setPublishDate, [Values(false, true)] bool setDateFrom, [Values(false, true)] bool setDateTo) { var editMode = EditMode.Edit; var postID = "TestPostID"; var title = "A post title"; var body = string.Empty; var tags = new string[] { "Tag1", "Tag2", "Tag3" }; var publishDate = setPublishDate ? new DateTime?(new DateTime(2001, 1, 1)) : null; var dateFrom = setDateFrom ? new DateTime?(new DateTime(2001, 1, 2)) : null; var dateTo = setDateTo ? new DateTime?(new DateTime(2001, 1, 3)) : null; var position = latitude != null && longitude != null ? new Position(latitude.Value, longitude.Value) : null; var post = new Post(); post.ID = postID; post.Title = "oldTitle"; post.Body = "oldBody"; post.Position = new Position(41, 14); post.Tags.Add("Tag2"); post.Tags.Add("Tag4"); var category = MockRepository.GenerateStub <PostCategory>(); if (!String.IsNullOrEmpty(newCategory)) { _postCategoryRepositoryMock.Expect(r => r.Create()).Return(category); _postCategoryRepositoryMock.Expect( r => r.Save(category)) .WhenCalled( p => Assert.That(category.Title, Is.EqualTo(newCategory))); } else { category.ID = categoryID; _postCategoryRepositoryMock.Expect(r => r.Get(categoryID)).Return(category); } _postRepositoryMock.Expect(r => r.Get(postID)).Return(post); _postRepositoryMock.Expect( r => r.SubmitChanges()) .WhenCalled( b => VerifyPost(post, postID, title, body, isPublished, position, category, tags, publishDate, dateFrom, dateTo)); var result = TestedController.Save(editMode, postID, title, body, isPublished, latitude, longitude, categoryID, newCategory, tags.Concat(";"), publishDate, dateFrom, dateTo); VerifyRedirectToRouteResult(result, expectedAction: "Detail", expectedID: postID); }
public void SaveWithInvalidEditModeTest() { var editMode = (EditMode)Int32.MaxValue; var postCommentID = Guid.Empty.ToString(); var postID = "TestPostID"; var author = "Author<"; var title = "A post comment title<"; var body = "Post comment body<"; var email = "*****@*****.**"; var website = "http://www.here.com"; var shipName = "Molimentum"; var postComment = new PostComment(); postComment.ID = postCommentID; try { TestedController.ValueProvider = new FormCollection { { "PostComment.Author", author }, { "PostComment.Title", title }, { "PostComment.Body", body }, { "PostComment.Email", email }, { "PostComment.Website", website } }; var result = TestedController.Save(editMode, postCommentID, postID, shipName); Assert.Fail("ArgumentException not raised."); } catch (ArgumentException ex) { Assert.That(ex.ParamName, Is.EqualTo("editMode")); } }
public void SaveWithInvalidEditModeTest() { var editMode = (EditMode)Int32.MaxValue; var positionReportID = Guid.Empty.ToString(); var comment = "A position report comment"; var positionReport = new PositionReport(); positionReport.ID = positionReportID; try { var result = TestedController.Save(editMode, positionReportID, null, comment, null, null); Assert.Fail("ArgumentException not raised."); } catch (ArgumentException ex) { Assert.That(ex.ParamName, Is.EqualTo("editMode")); } }
public void SaveInvalidTest( [Values("", null)] string title) { var editMode = EditMode.Add; var postCategoryID = Guid.Empty.ToString(); var body = string.Empty; var postListOrder = PostListOrder.Title; var postCategory = new PostCategory(); postCategory.ID = postCategoryID; _postCategoryRepositoryMock.Expect(r => r.Create()).Return(postCategory); var result = TestedController.Save(editMode, postCategoryID, title, body, postListOrder); VerifyViewResult(result, "Edit", typeof(EditPostCategoryData)); var resultModel = (EditPostCategoryData)((ViewResult)result).ViewData.Model; Assert.That(resultModel.EditMode, Is.EqualTo(EditMode.Add)); Assert.That(resultModel.PostCategory, Is.EqualTo(postCategory)); }
public void SaveInvalidTest( [Values("", null)] string title) { var editMode = EditMode.Add; var postID = Guid.Empty.ToString(); var body = string.Empty; var tags = new[] { "Tag1", "Tag2", "Tag3" }; var postCategoryList = new PagedList <PostCategory>(new PostCategory[] { }, 1, 10, 1); _postCategoryRepositoryMock.Expect(r => r.List(1, int.MaxValue)).Return(postCategoryList); var post = new Post(); post.ID = postID; _postRepositoryMock.Expect(r => r.Create()).Return(post); var result = TestedController.Save(editMode, postID, title, body, false, null, null, null, null, tags.Concat(";"), null, null, null); VerifyViewResult(result, "Edit", typeof(EditPostData)); var viewResult = (ViewResult)result; Assert.That(viewResult.ViewData.ModelState.IsValid, Is.False); Assert.That(viewResult.ViewData.ModelState.IsValidField("title"), Is.False); Assert.That(viewResult.ViewData.ModelState.IsValidField("body"), Is.True); var resultModel = (EditPostData)((ViewResult)result).ViewData.Model; Assert.That(resultModel.EditMode, Is.EqualTo(EditMode.Add)); Assert.That(resultModel.Post, Is.EqualTo(post)); Assert.That(resultModel.PostCategories, Is.SameAs(postCategoryList.Items)); }
public void SaveWithInvalidEditModeTest() { var editMode = (EditMode)Int32.MaxValue; var postCategoryID = Guid.Empty.ToString(); var title = "A post category title"; var body = string.Empty; var postListOrder = PostListOrder.Title; var postCategory = new PostCategory(); postCategory.ID = postCategoryID; try { var result = TestedController.Save(editMode, postCategoryID, title, body, postListOrder); Assert.Fail("ArgumentException not raised."); } catch (ArgumentException ex) { Assert.That(ex.ParamName, Is.EqualTo("editMode")); } }
public void SaveWithInvalidTest( [Values(true, false)] bool invalidAuthor, [Values(true, false)] bool invalidTitle, [Values(true, true, true, false)] bool invalidEmail, [Values( "", "me", "*****@*****.**", "*****@*****.**")] string email, [Values(true, false)] bool invalidBody, [Values(true, false)] bool invalidWebsite) { var editMode = EditMode.Add; var postID = (string)null; var postCommentID = Guid.Empty.ToString(); var author = invalidAuthor ? "" : "Author"; var title = invalidTitle ? "" : "A post comment title"; var body = invalidBody? "" : "Post comment body"; var website = invalidWebsite ? "foobar.htt7holladrio\\\\" : "http://www.here.com"; var shipName = "Blue Sky"; var postComment = new PostComment(); postComment.ID = postCommentID; _postCommentRepositoryMock.Expect(r => r.Create()).Return(postComment); TestedController.ValueProvider = new FormCollection { { "PostComment.Author", author }, { "PostComment.Title", title }, { "PostComment.Body", body }, { "PostComment.Email", email }, { "PostComment.Website", website } }; var result = TestedController.Save(editMode, postCommentID, postID, shipName); VerifyViewResult(result, "Edit", typeof(EditPostCommentData)); var viewResult = (ViewResult)result; Assert.That(viewResult.ViewData.ModelState.IsValid, Is.False); Assert.That(viewResult.ViewData.ModelState.IsValidField("PostComment.Author"), Is.Not.EqualTo(invalidAuthor)); Assert.That(viewResult.ViewData.ModelState.IsValidField("PostComment.Title"), Is.Not.EqualTo(invalidTitle)); Assert.That(viewResult.ViewData.ModelState.IsValidField("PostComment.Body"), Is.Not.EqualTo(invalidBody)); Assert.That(viewResult.ViewData.ModelState.IsValidField("PostComment.Email"), Is.Not.EqualTo(invalidEmail)); Assert.That(viewResult.ViewData.ModelState.IsValidField("PostComment.Website"), Is.Not.EqualTo(invalidWebsite)); Assert.That(viewResult.ViewData.ModelState.IsValidField("shipName"), Is.False); var resultModel = (EditPostCommentData)((ViewResult)result).ViewData.Model; Assert.That(resultModel.EditMode, Is.EqualTo(EditMode.Add)); Assert.That(resultModel.PostComment, Is.EqualTo(postComment)); VerifyPostComment(resultModel.PostComment, postCommentID, postID, author, title, body, email, website); }
public void SaveExistingTest( [Values(null, "PostID")] string postID) { var editMode = EditMode.Edit; var postCommentID = "PostCommentID"; var author = "Author<"; var title = "A post comment title<"; var body = "Post comment body<"; var email = "*****@*****.**"; var website = "http://www.here.com"; var shipName = "Molimentum"; Post post; if (postID != null) { post = new Post(); post.ID = postID; } else { post = null; } var postComment = new PostComment(); postComment.ID = postCommentID; postComment.Post = post; postComment.Author = "Old author"; postComment.Title = "Old post comment title"; postComment.Body = "Old post comment body"; postComment.Email = "*****@*****.**"; postComment.Website = "http://www.oldhere.com"; _postCommentRepositoryMock.Expect(r => r.Get(postCommentID)).Return(postComment); _postCommentRepositoryMock.Expect( r => r.SubmitChanges()) .WhenCalled( b => VerifyPostComment(postComment, postCommentID, postID, author, title, body, email, website)); TestedController.ValueProvider = new FormCollection { { "PostComment.Author", author }, { "PostComment.Title", title }, { "PostComment.Body", body }, { "PostComment.Email", email }, { "PostComment.Website", website } }; var result = TestedController.Save(editMode, postCommentID, postID, shipName); if (postID != null) { // associated post, expect redirect to post detail page VerifyRedirectToRouteResult(result, expectedController: "Posts", expectedAction: "Detail", expectedID: postID); } else { // no associated post, expect redirect to postcomments list VerifyRedirectToRouteResult(result, expectedAction: "Index"); } }