예제 #1
0
        public void Setup()
        {
            _transactionScope = new TransactionScope();
            _nickname         = "nickname";

            _post1 = BuildMeA.Post("Title", "Entry", DateTime.Today, DateTime.Today);

            _blog1 = BuildMeA
                     .Blog("title", "description", _nickname, DateTime.Now)
                     .WithPost(_post1);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(_blog1);

            _post2 = BuildMeA.Post("Title", "Entry", DateTime.Today, DateTime.Today, false);

            Blog blog2 = BuildMeA
                         .Blog("title", "description", "nickname2", DateTime.Now)
                         .WithPost(_post2);

            _user2 = BuildMeA.User("email", "name2", "password")
                     .WithBlog(blog2);

            _userRepository = new UserRepository(ConfigurationManager.ConnectionStrings["mblog"].ConnectionString);
            _postRepository = new PostRepository(ConfigurationManager.ConnectionStrings["mblog"].ConnectionString);
        }
예제 #2
0
        public void Setup()
        {
            _transactionScope = new TransactionScope();
            _nickname         = "nickname";

            var posts = new List <Post>();

            for (int i = 0; i < NumberOfPosts; i++)
            {
                Post post = BuildMeA.Post("title " + i, "entry " + i, DateTime.Today, DateTime.Today);
                posts.Add(post);
            }


            _blog = BuildMeA
                    .Blog("title", "description", _nickname, DateTime.Now)
                    .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(_blog);

            Blog blog2 = BuildMeA
                         .Blog("title", "description", "nickname2", DateTime.Now);

            _user2 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog2);

            _userRepository = new UserRepository(ConfigurationManager.ConnectionStrings["mblog"].ConnectionString);
            _blogRepository = new BlogRepository(ConfigurationManager.ConnectionStrings["mblog"].ConnectionString);
        }
예제 #3
0
        public void GivenTheUserHasCreatedNoPosts_WhenIGetAllPosts_ThenIGetTheCorrectPosts()
        {
            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            _userRepository.Create(_user1);

            IEnumerable <Post> newPosts = _postRepository.GetBlogPosts(_nickname);

            Assert.That(newPosts, Is.Not.Null);
            Assert.That(newPosts.Count(), Is.EqualTo(0));
        }
예제 #4
0
        public void GivenABlogId_WhenIAskForItsOrderedPosts_ThenIGetThePostsInDateOrder()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2000, 4, 19), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 4, 19), DateTime.Today)
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);
            _userRepository.Create(_user1);

            var newPosts = _postRepository.GetOrderedBlogPosts(blog.Id) as List <Post>;

            Assert.That(newPosts[0].Title, Is.StringEnding("2"));
        }
예제 #5
0
        public void WhenIUpdateAPost_AndThePostDoesNotExist_ThenAnExceptionIsThrown()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2010, 4, 19), DateTime.Today),
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            _userRepository.Create(_user1);

            Post post = _postRepository.Entities.Where(p => p.Title == "title 1").FirstOrDefault();

            Assert.Throws <MBlogException>(() => _postRepository.Update(post.Id + 1001, "new title", post.BlogPost));
        }
예제 #6
0
        public void GivenThereIsAComment_WhenIRetriveTheOwningPost_ThenCommentIsRetrived()
        {
            Comment comment = BuildMeA.Comment("This is a comment", DateTime.Now);

            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2011, 4, 19), DateTime.Today).
                WithComment(comment)
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);
            _userRepository.Create(_user1);
            Post newPost = _postRepository.GetBlogPost(posts[0].Id);

            Assert.That(newPost.Comments.Count, Is.EqualTo(1));
        }
예제 #7
0
        public void Setup()
        {
            _transactionScope = new TransactionScope();
            _nickname1        = "nickname1";

            _userRepository = new UserRepository(ConfigurationManager.ConnectionStrings["mblog"].ConnectionString);

            Blog blog1 = BuildMeA
                         .Blog("title1", "description1", _nickname1, DateTime.Now);
            Blog blog2 = BuildMeA
                         .Blog("title2", "description2", _nickname1, DateTime.Now);

            _user = BuildMeA.User("email1", "name1", "password1")
                    .WithBlog(blog1)
                    .WithBlog(blog2);

            _userRepository.Create(_user);

            _user2 = BuildMeA.User("email1", "name1", "password1");
            _userRepository.Create(_user2);
        }
예제 #8
0
        GivenTheUserHasMultiplePostsForTheSameYearMonthDayAndTitle_WhenIGetAllPostsForThatYearMonthDayWithTheWrongTitleTitle_ThenIGetNoPosts
            ()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2010, 4, 19), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 4, 19), DateTime.Today),
                BuildMeA.Post("title 3", "entry 1", new DateTime(2011, 4, 19), DateTime.Today),
                BuildMeA.Post("title 4", "entry 1", new DateTime(2011, 6, 21), DateTime.Today),
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            var posts2 = new List <Post>
            {
                BuildMeA.Post("title 2", "entry 1", new DateTime(2010, 4, 19), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 4, 19), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 4, 20), DateTime.Today),
            };

            Blog blog2 = BuildMeA
                         .Blog("title2", "description2", "nickname2", DateTime.Now)
                         .WithPosts(posts2);

            _user2 = BuildMeA.User("email2", "name2", "password2")
                     .WithBlog(blog2);

            _userRepository.Create(_user1);
            _userRepository.Create(_user2);

            IEnumerable <Post> newPosts = _postRepository.GetBlogPosts(2011, 4, 19, _nickname, "title-3");

            Assert.That(newPosts, Is.Not.Null);
            Assert.That(newPosts.Count(), Is.EqualTo(1));
        }
예제 #9
0
        public void GivenTheUserHasMultiplePosts_WhenIGetAllPostsForThatNickname_ThenIGetTheCorrectPosts()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2010, 4, 19), DateTime.Today),
                BuildMeA.Post("title 1", "entry 1", new DateTime(2011, 4, 19), DateTime.Today),
                BuildMeA.Post("title 1", "entry 1", new DateTime(2011, 5, 20), DateTime.Today),
                BuildMeA.Post("title 1", "entry 1", new DateTime(2011, 6, 21), DateTime.Today),
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            var posts2 = new List <Post>
            {
                BuildMeA.Post("title 2", "entry 1", new DateTime(2010, 4, 18), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 3, 19), DateTime.Today),
                BuildMeA.Post("title 2", "entry 1", new DateTime(2011, 4, 20), DateTime.Today),
            };

            Blog blog2 = BuildMeA
                         .Blog("title2", "description2", "nickname2", DateTime.Now)
                         .WithPosts(posts2);

            _user2 = BuildMeA.User("email2", "name2", "password2")
                     .WithBlog(blog2);

            _userRepository.Create(_user1);
            _userRepository.Create(_user2);

            IEnumerable <Post> newPosts = _postRepository.GetBlogPosts(0, 0, 0, _nickname, null);

            Assert.That(newPosts, Is.Not.Null);
            Assert.That(newPosts.Count(), Is.EqualTo(4));
        }
예제 #10
0
        public void GivenTheUserHasCreatedMultiplePosts_WhenIGetAllPosts_ThenIGetTheCorrectPosts()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", DateTime.Today, DateTime.Today),
                BuildMeA.Post("title 1", "entry 1", DateTime.Today, DateTime.Today),
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            _userRepository.Create(_user1);

            IEnumerable <Post> newPosts = _postRepository.GetBlogPosts(_nickname);

            Assert.That(newPosts, Is.Not.Null);
            Assert.That(newPosts.Count(), Is.EqualTo(posts.Count));
        }
예제 #11
0
        public void WhenIUpdateAPost_ThenIPostIsUpdated()
        {
            var posts = new List <Post>
            {
                BuildMeA.Post("title 1", "entry 1", new DateTime(2010, 4, 19), DateTime.Today),
            };

            Blog blog = BuildMeA
                        .Blog("title", "description", _nickname, DateTime.Now)
                        .WithPosts(posts);

            _user1 = BuildMeA.User("email", "name", "password")
                     .WithBlog(blog);

            _userRepository.Create(_user1);

            Post post = _postRepository.Entities.Where(p => p.Title == "title 1").FirstOrDefault();

            _postRepository.Update(post.Id, "new title", post.BlogPost);
            post = _postRepository.Entities.Where(p => p.Title == "new title").FirstOrDefault();

            Assert.That(post, Is.Not.Null);
        }