Beispiel #1
0
        public void AddVoteTest()
        {
            // Arrange
            var fakeRepo       = new FakePostRepository();
            var postController = new HomeController(fakeRepo);

            //Act
            // Add the first poll
            Poll poll = new Poll()
            {
                MarioVotes   = 0,
                MetroidVotes = 0,
                PikminVotes  = 0,
                PokemonVotes = 0,
                ZeldaVotes   = 0
            };

            //Assert
            fakeRepo.AddPoll(poll);
            Assert.Single(fakeRepo.pollList);  // Make sure that the poll gets to its spot

            Assert.Equal(0, fakeRepo.pollList[0].MarioVotes);
            Assert.Equal(0, fakeRepo.pollList[0].MetroidVotes);
            Assert.Equal(0, fakeRepo.pollList[0].PikminVotes);
            Assert.Equal(0, fakeRepo.pollList[0].PokemonVotes);
            Assert.Equal(0, fakeRepo.pollList[0].ZeldaVotes);

            //------Vote Legend------
            //1 : Mario
            //2 : Metroid
            //3 : Pikmin
            //4 : Pokemon
            //5 : Zelda
            fakeRepo.Polls[0].AddVote(1);                       //Adds a vote for Mario
            fakeRepo.Polls[0].AddVote(1);                       //Adds a vote for Mario
            fakeRepo.Polls[0].AddVote(1);                       //Adds a vote for Mario

            fakeRepo.Polls[0].AddVote(2);                       //Adds a vote for Metroid

            fakeRepo.Polls[0].AddVote(3);                       //Adds a vote for Pikmin
            fakeRepo.Polls[0].AddVote(3);                       //Adds a vote for Pikmin
            fakeRepo.Polls[0].AddVote(3);                       //Adds a vote for Pikmin
            fakeRepo.Polls[0].AddVote(3);                       //Adds a vote for Pikmin

            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon
            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon
            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon
            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon
            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon
            fakeRepo.Polls[0].AddVote(4);                       //Adds a vote for Pokemon

            fakeRepo.Polls[0].AddVote(5);                       //Adds a vote for Zelda
            fakeRepo.Polls[0].AddVote(5);                       //Adds a vote for Zelda

            Assert.Equal(3, fakeRepo.pollList[0].MarioVotes);   //checks that 3 votes made it to the Mario section
            Assert.Equal(1, fakeRepo.pollList[0].MetroidVotes); //checks that 3 votes made it to the Metroid section
            Assert.Equal(4, fakeRepo.pollList[0].PikminVotes);  //checks that 3 votes made it to the Pikmin section
            Assert.Equal(6, fakeRepo.pollList[0].PokemonVotes); //checks that 3 votes made it to the Pokemon section
            Assert.Equal(2, fakeRepo.pollList[0].ZeldaVotes);   //checks that 3 votes made it to the Zelda section
        }
Beispiel #2
0
        public void Create_WhenPostTextIsNull_ShouldReturnStatusCode400()
        {
            var fakeUserRepo = new FakeUserRepository();
            var user         = new User()
            {
                DisplayName = "JavaScript",
                Username    = "******",
                AuthCode    = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e",
                SessionKey  = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH"
            };

            fakeUserRepo.Add(user);

            var fakePostRepo = new FakePostRepository();

            var server  = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo);
            var newPost = new
            {
                title = "some title",
                tags  = new string[] { "asd", "qwe" }
            };


            var response = server.CreatePostRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH", newPost);

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Beispiel #3
0
        public void AddUserTest()
        {
            // Arrange
            var fakeRepo       = new FakePostRepository();
            var postController = new HomeController(fakeRepo);

            // Act & Assert
            User user = new User()
            {
                UserName = "******",
                EMAIL    = "*****@*****.**",
                IsMember = true,
            };

            fakeRepo.AddUser(user);
            Assert.Single(fakeRepo.UserNames);
            Assert.Equal("jeffw773", fakeRepo.UserNames[0].UserName);
            Assert.Equal("*****@*****.**", fakeRepo.UserNames[0].EMAIL);

            user = new User()
            {
                UserName = "******",
                EMAIL    = "*****@*****.**",
                IsMember = true,
            };
            fakeRepo.AddUser(user);
            Assert.Equal(2, fakeRepo.UserNames.Count);
            Assert.Equal("Mashter Chef", fakeRepo.UserNames[1].UserName);
            Assert.Equal("*****@*****.**", fakeRepo.UserNames[1].EMAIL);
        }
Beispiel #4
0
        public void CommentPost_WhenSessionKeyIsNotCorrect_ShouldReturnStatusCode400()
        {
            var user = new User()
            {
                DisplayName = "JavaScript",
                Username    = "******",
                AuthCode    = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e",
                SessionKey  = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH"
            };

            var fakeUserRepo = new FakeUserRepository();

            fakeUserRepo.Add(user);

            var post = new Post()
            {
                PostDate = DateTime.Now,
                Text     = "Some text",
                Title    = "SomeTitle",
                User     = user
            };

            var fakePostRepo = new FakePostRepository();

            fakePostRepo.Add(post);

            var server   = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo);
            var response = server.CreateGetRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH&tags");

            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
Beispiel #5
0
        public void GetByTags_WhenTagsAreNotCorrect_ShouldReturnNoContent()
        {
            var user = new User()
            {
                DisplayName = "JavaScript",
                Username    = "******",
                AuthCode    = "bfff2dd4f1b310eb0dbf593bd83f94dd8d34077e",
                SessionKey  = "1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH"
            };

            var fakeUserRepo = new FakeUserRepository();

            fakeUserRepo.Add(user);

            var post = new Post()
            {
                PostDate = DateTime.Now,
                Text     = "Some text",
                Title    = "SomeTitle",
                User     = user
            };

            var fakePostRepo = new FakePostRepository();

            fakePostRepo.Add(post);

            var tags = new List <Tag>()
            {
                new Tag()
                {
                    Name  = "c#",
                    Posts = new List <Post>()
                    {
                        post
                    }
                },

                new Tag()
                {
                    Name  = "web",
                    Posts = new List <Post>()
                    {
                        post
                    }
                },
            };

            var fakeTagRepo = new FakeTagRepository();

            fakeTagRepo.Add(tags[0]);
            fakeTagRepo.Add(tags[1]);

            var server   = new InMemoryHttpServer <Post>("http://localhost/", fakePostRepo);
            var response = server.CreateGetRequest("api/posts?sessionKey=1zIzcHNYWhSKnWVrGNpBLxOzDDLPRMbHMeMjklumYmodzRTgAH&tags=js");

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
            Assert.IsNotNull(response.Content);
        }
Beispiel #6
0
        public void AddPostTest()
        {
            // Arrange
            var fakeRepo       = new FakePostRepository();
            var postController = new HomeController(fakeRepo);

            // Act
            //               Post(string thepost, string username, string email, string title, bool ismember)
            postController.Post("I was saved by him!", "Keltoi", "*****@*****.**", "I was saved", true);

            // Assert
            Assert.Equal("I was saved",
                         fakeRepo.postList[fakeRepo.postList.Count - 1].Title);
        }
Beispiel #7
0
        public void Shoud_Not_Add_Post_Without_Author()
        {
            var post = new Post();
            post.Title = "Post Title";
            post.Body = "Post body.";
            post.IsPublished = true;

            var postValidation = new PostValidation();
            var postRepository = new FakePostRepository();
            var postService = new PostService(postRepository, postValidation);

            var result = postService.Add(post);
                        
            Assert.IsFalse(result.IsValid);
            Assert.IsTrue(result.Errors.Count == 1);
            Assert.IsTrue(result.Errors[0].PropertyName == "Author.Id");
            
        }
Beispiel #8
0
        public void Shoud_Not_Add_Post_Without_Author()
        {
            var post = new Post();

            post.Title       = "Post Title";
            post.Body        = "Post body.";
            post.IsPublished = true;

            var postValidation = new PostValidation();
            var postRepository = new FakePostRepository();
            var postService    = new PostService(postRepository, postValidation);

            var result = postService.Add(post);

            Assert.IsFalse(result.IsValid);
            Assert.IsTrue(result.Errors.Count == 1);
            Assert.IsTrue(result.Errors[0].PropertyName == "Author.Id");
        }
Beispiel #9
0
        public void IndexTest()
        {
            // Arrange
            var fakeRepo = new FakePostRepository();

            AddTestPosts(fakeRepo);
            var postController = new HomeController(fakeRepo);

            // Act - get a list of posts sorted by title in ascending order
            var result = (ViewResult)postController.PostPage();
            var posts  = (List <Post>)result.Model;


            // Assert that post titles are in ascending order.
            // This implicitly checks that there are three posts in the list as well.
            Assert.True(string.Compare(posts[0].Title, posts[1].Title) < 0 &&
                        string.Compare(posts[1].Title, posts[2].Title) < 0);
        }
Beispiel #10
0
        public void AddEmailTest()
        {
            // Arrange
            var fakeRepo       = new FakePostRepository();
            var postController = new HomeController(fakeRepo);

            Assert.Equal(0, fakeRepo.emailList.Count);
            // Add the first email
            Email email = new Email()
            {
                EmailValue    = "*****@*****.**",
                UserNameValue = "Master Chief",
            };

            fakeRepo.AddEmail(email);
            Assert.Single(fakeRepo.emailList);
            Assert.Equal("Master Chief", fakeRepo.emailList[fakeRepo.emailList.Count - 1].UserNameValue);
            Assert.Equal("*****@*****.**", fakeRepo.emailList[fakeRepo.emailList.Count - 1].EmailValue);


            // Add the second email
            email = new Email()
            {
                EmailValue    = "*****@*****.**",
                UserNameValue = "Rick and Morty",
            };
            fakeRepo.AddEmail(email);
            Assert.Equal(2, fakeRepo.emailList.Count);
            Assert.Equal("Rick and Morty", fakeRepo.emailList[fakeRepo.emailList.Count - 1].UserNameValue);
            Assert.Equal("*****@*****.**", fakeRepo.emailList[fakeRepo.emailList.Count - 1].EmailValue);

            // Add the third email
            email = new Email()
            {
                EmailValue    = "*****@*****.**",
                UserNameValue = "Halo",
            };
            fakeRepo.AddEmail(email);
            Assert.Equal(3, fakeRepo.emailList.Count);
            Assert.Equal("Halo", fakeRepo.emailList[fakeRepo.emailList.Count - 1].UserNameValue);
            Assert.Equal("*****@*****.**", fakeRepo.emailList[fakeRepo.emailList.Count - 1].EmailValue);
        }
Beispiel #11
0
        public void AddPollTest()
        {
            // Arrange
            var fakeRepo       = new FakePostRepository();
            var postController = new HomeController(fakeRepo);

            //Act
            // Add the first poll
            Poll poll = new Poll()
            {
                MarioVotes   = 0,
                MetroidVotes = 0,
                PikminVotes  = 0,
                PokemonVotes = 0,
                ZeldaVotes   = 0
            };

            //Assert
            fakeRepo.AddPoll(poll);
            Assert.Single(fakeRepo.pollList);  // Make sure that the poll gets to its spot
        }
Beispiel #12
0
        public void AddCommentTest()
        {
            // Arrange
            var fakeRepo = new FakePostRepository();

            AddTestPosts(fakeRepo);
            var postController = new HomeController(fakeRepo);

            //public NewComment(string title, string commentText, string username)
            // Act
            postController.NewComment("I Played as Master Chief",
                                      "This post is simply the best.",
                                      "Jeff Walters");
            // Assert
            Assert.Equal("This post is simply the best.",
                         fakeRepo.GetPostByTitle("I Played as Master Chief").comments[0].CommentText);
            //Assert
            Assert.Equal(3, fakeRepo.postList.Count);              //Tests that three posts were added to the FakeRepo
            Assert.Equal(3, fakeRepo.usersList.Count);             //Tests that 3 users were added to the usersList
            Assert.True(fakeRepo.postList[0].comments.Count == 1); //Checks and confirms that post number 1 has 1 comment from the NewComment call above^
            Assert.True(fakeRepo.postList[1].comments.Count == 0);
            Assert.True(fakeRepo.postList[2].comments.Count == 1); //Tests that post number 3 has 1 comment
        }
Beispiel #13
0
        public object GetService(Type serviceType)
        {
            if (serviceType == typeof(UsersController))
            {
                return(new UsersController(this.Repository as IRepository <User>));
            }
            else if (serviceType == typeof(PostsController))
            {
                var fakeUserRepo    = new FakeUserRepository();
                var fakePostRepo    = new FakePostRepository();
                var fakeTagRepo     = new FakeTagRepository();
                var fakeCommentRepo = new FakeCommentRepository();

                return(new PostsController(
                           fakeUserRepo,
                           fakePostRepo,
                           fakeTagRepo,
                           fakeCommentRepo));
            }
            else
            {
                return(null);
            }
        }
Beispiel #14
0
        // This method adds three posts and one comment to the fakeRepository.
        private void AddTestPosts(FakePostRepository fakeRepo)
        {
            string author1 = "Jeff Walters";
            string author2 = "Keltoi";
            string author3 = "Plastered_Crab";

            //Arange
            // Add the first post
            Post post = new Post()
            {
                Title    = "I Played as Master Chief",
                ThePost  = "I loved playing as my hero John 117. They captured his likeness perfectly. 10/10 the best game ever!",
                IsMember = true,
                Username = author1,
                Date     = new DateTime(2007, 7, 7)
            };

            User user = new User()
            {
                UserName = author1,
                EMAIL    = "*****@*****.**",
                IsMember = true,
            };

            fakeRepo.AddUser(user); //adds a single user to the list
            fakeRepo.AddPost(post);


            // Add the second post
            post = new Post()
            {
                Title    = "I saw him once!",
                ThePost  = "I really did! Why don't any of you believe me??",
                IsMember = true,
                Username = author2,
                Date     = new DateTime(2007, 7, 8)
            };

            user = new User()
            {
                UserName = author2,
                EMAIL    = "*****@*****.**",
                IsMember = true,
            };
            fakeRepo.AddUser(user);  //adds a second user to the list
            fakeRepo.AddPost(post);


            // Add the third post and a comment
            post = new Post()
            {
                Title    = "I saw him twice!",
                ThePost  = "I really did! Please believe me!!",
                IsMember = true,
                Username = author3,
                Date     = new DateTime(2007, 7, 9)
            };

            user = new User()
            {
                UserName = author3,
                EMAIL    = "*****@*****.**",
                IsMember = true,
            };
            Comment testComment = new Comment()
            {
                CommentText = "This is a test comment!",
                Username    = "******",
                PostTitle   = "I saw him twice!",
                Date        = new DateTime(2019, 7, 7)
            };

            post.comments.Add(testComment); //adds a comment to the post
            fakeRepo.AddUser(user);         //adds a third user to the list
            fakeRepo.AddPost(post);         //adds the post with the comment to the list of posts
        }