Example #1
0
        public ActionResult SubmitRepresentativeAnswer(RepresentativeAnswerTestModel model)
        {
            QuestionsService service = new QuestionsService();

            TryUpdateModel(model);

            service.PostAnswer(model.QuestionId, model.RepresentativeId, model.Answer);

            return(RedirectToAction("GetLawQuestionsDetails", "JavnaRasprava", new { lawId = model.LawId }));
        }
Example #2
0
        public void PostAnswer_RepresentativeAnswer_Count1()
        {
            QuestionsService service = new QuestionsService();

            Law             law  = null;
            ApplicationUser user = null;

            try
            {
                user = Helpers.CreateNewUser();

                law = Helpers.CreateLaw(1, new List <string> {
                    "AmirFazlic", "AsimSarajlic", "SalkoSokolovic"
                }, new List <string> {
                    "First Question", "Second Question"
                }, user.Id);

                var questionID = law.Questions.First().QuestionID;
                var repID      = law.LawRepresentativeAssociations.First().RepresentativeID;

                service.PostAnswer(questionID, repID, "Test Answer");

                var response = service.GetQuestionsForLaw(law.LawID, user.Id);

                var actual = response.Questions
                             .Where(x => x.Id == questionID)
                             .First()
                             .Representatives
                             .Where(x => x.ID == repID)
                             .First()
                             .Answer.Text;

                Assert.AreEqual("Test Answer", actual);
            }
            finally
            {
                Helpers.DeleteLaw(law);
                Helpers.DeleteUser(user);
            }
        }
Example #3
0
        public void QuestionAndAnswerLikes_ChainMethods()
        {
            QuestionsService service = new QuestionsService();

            Law             law   = null;
            ApplicationUser user1 = null;
            ApplicationUser user2 = null;
            ApplicationUser user3 = null;

            try
            {
                user1 = Helpers.CreateNewUser();
                user2 = Helpers.CreateNewUser();
                user3 = Helpers.CreateNewUser();

                law = Helpers.CreateLaw(1, new List <string> {
                    "AmirFazlic", "AsimSarajlic"
                }, new List <string> {
                    "First Question", "Second Question"
                }, user1.Id);

                var questionID = law.Questions.First().QuestionID;
                var repID      = law.LawRepresentativeAssociations.First().RepresentativeID;
                var nextRepID  = law.LawRepresentativeAssociations.Where(x => x.RepresentativeID != repID).First().RepresentativeID;
                service.PostAnswer(questionID, repID, "Test Answer");
                service.PostAnswer(questionID, nextRepID, "Test Answer");

                var modelPriorToLikes = service.GetQuestionsForLaw(law.LawID, user2.Id);
                var question          = modelPriorToLikes.Questions.Where(x => x.Id == questionID).First();
                var answer            = question.Representatives.Where(x => x.ID == repID).First().Answer;
                Assert.AreEqual(0, question.LikesCount, "New Question no one liked yet");
                Assert.IsFalse(question.UserLiked.HasValue, "New question user did not like yet");
                Assert.AreEqual(0, answer.LikesCount, "New answer no one liked yet");
                Assert.IsFalse(answer.UserLiked.HasValue, "New answer user did not like yet");


                service.LikeQuestion(question.Id, user1.Id, true);
                service.LikeQuestion(question.Id, user2.Id, true);

                service.LikeAnswer(answer.ID, user1.Id, false);
                service.LikeAnswer(answer.ID, user2.Id, true);
                service.LikeAnswer(answer.ID, user3.Id, false);

                var modelForUser2 = service.GetQuestionsForLaw(law.LawID, user2.Id);
                question = modelForUser2.Questions.Where(x => x.Id == questionID).First();
                var nextQuestion = modelForUser2.Questions.Where(x => x.Id != questionID).First();
                answer = question.Representatives.Where(x => x.ID == repID).First().Answer;
                var nextAnswer = question.Representatives.Where(x => x.ID == nextRepID).First().Answer;
                Assert.AreEqual(2, question.LikesCount, "2 users liked");
                Assert.AreEqual(0, question.DislikesCount, "0 users disliked");
                Assert.IsTrue(question.UserLiked.HasValue, "User2 liked");

                Assert.AreEqual(0, nextQuestion.LikesCount, "0 users liked next question");
                Assert.AreEqual(0, nextQuestion.DislikesCount, "0 users disliked next question");
                Assert.IsFalse(nextQuestion.UserLiked.HasValue, "User2 did not like next question");

                Assert.AreEqual(1, answer.LikesCount, "1 user liked answer");
                Assert.AreEqual(2, answer.DislikesCount, "2 users disliked answer");
                Assert.IsTrue(answer.UserLiked.HasValue, "user2 liked answer");
                Assert.IsTrue(answer.UserLiked.Value, "user2 liked answer");

                Assert.AreEqual(0, nextAnswer.LikesCount, "0 user liked next answer");
                Assert.AreEqual(0, nextAnswer.DislikesCount, "0 users disliked next answer");
                Assert.IsFalse(nextAnswer.UserLiked.HasValue, "user2 did not like next answer");

                var modelForUser3 = service.GetQuestionsForLaw(law.LawID, user3.Id);
                question = modelForUser3.Questions.Where(x => x.Id == questionID).First();
                answer   = question.Representatives.Where(x => x.ID == repID).First().Answer;

                Assert.IsFalse(question.UserLiked.HasValue, "user3 did not like the question");
                Assert.IsFalse(answer.UserLiked.Value, "user3 disliked answer");
            }
            finally
            {
                Helpers.DeleteLaw(law);
                Helpers.DeleteUser(user1);
                Helpers.DeleteUser(user2);
                Helpers.DeleteUser(user3);
            }
        }