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);
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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"));
            }
        }
Esempio n. 7
0
        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));
        }
Esempio n. 9
0
        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");
            }
        }