public void Post_VoteForPostTest_ValidExecutionOfTheMethod()
        {
            FakeRepository<Post> postFakeRepository = new FakeRepository<Post>();
            FakeRepository<User> userFakeRepository = new FakeRepository<User>();
            FakeRepository<Thread> threadFakeRepository = new FakeRepository<Thread>();
            FakeRepository<Vote> voteFakeRepository = new FakeRepository<Vote>();
            FakeRepository<Comment> commentFakeRepository = new FakeRepository<Comment>();

            User user = new User()
            {
                AuthCode = "0123456789012345678901234567890123456789",
                Username = "******",
                Nickname = "TestNickname",
                SessionKey = "0SuGqVGqRwitYtijDvHlVfHGotklitbwHdYFkgwIRcIQjRASPQ"
            };

            Thread thread = new Thread()
            {
                Title = "Test title",
                Creator = user,
                Content = "Test Content",
                DateCreated = DateTime.Now
            };

            Post post = new Post()
            {
                Content = "Test post content",
                DateCreated = DateTime.Now,
                User = user,
                Thread = thread
            };

            VoteModel voteModel = new VoteModel()
            {
                Value = 5
            };

            userFakeRepository.entities.Add(user);
            threadFakeRepository.entities.Add(thread);
            postFakeRepository.entities.Add(post);

            PostsController postsController = new PostsController(
                postFakeRepository, userFakeRepository, threadFakeRepository, voteFakeRepository, commentFakeRepository);

            SetupController(postsController);

            var response = postsController.VoteForPost(voteModel, post.Id, user.SessionKey);

            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);
        }
        public void Post_VoteForPostTest_InvalidVoteValue_ValueTooLarge()
        {
            FakeRepository<Post> postFakeRepository = new FakeRepository<Post>();
            FakeRepository<User> userFakeRepository = new FakeRepository<User>();
            FakeRepository<Thread> threadFakeRepository = new FakeRepository<Thread>();
            FakeRepository<Vote> voteFakeRepository = new FakeRepository<Vote>();
            FakeRepository<Comment> commentFakeRepository = new FakeRepository<Comment>();

            User user = new User()
            {
                AuthCode = "0123456789012345678901234567890123456789",
                Username = "******",
                Nickname = "TestNickname",
                SessionKey = "0SuGqVGqRwitYtijDvHlVfHGotklitbwHdYFkgwIRcIQjRASPQ"
            };

            Thread thread = new Thread()
            {
                Title = "Test title",
                Creator = user,
                Content = "Test Content",
                DateCreated = DateTime.Now
            };

            Post post = new Post()
            {
                Content = "Test post content",
                DateCreated = DateTime.Now,
                User = user,
                Thread = thread
            };

            VoteModel voteModel = new VoteModel()
            {
                Value = 20 // Invalid vote value, too large.
            };

            userFakeRepository.entities.Add(user);
            threadFakeRepository.entities.Add(thread);
            postFakeRepository.entities.Add(post);

            PostsController postsController = new PostsController(
                postFakeRepository, userFakeRepository, threadFakeRepository, voteFakeRepository, commentFakeRepository);

            SetupController(postsController);

            int invalidPostId = 100;
            var response = postsController.VoteForPost(voteModel, invalidPostId, user.SessionKey);
        }