Пример #1
0
        public void GetUserAnswersVM_Must_Return_Collection_Of_Answers_From_Given_User_Name()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testPublisher      = StaticMethods.GetTestUser();
            var testUser           = StaticMethods.GetTestUser("ChuckNorris", "*****@*****.**");
            var testQBM            = GetTestQuestionBM();

            //Act
            db.Users.Add(testUser);
            db.Users.Add(testPublisher);
            db.SaveChanges();
            var addedQuestion = discussionsService.AddQuestion(testQBM, testPublisher);
            var content1      = "First Test Answer";
            var answer1       = discussionsService.AddAnswer(content1, testUser, addedQuestion.Id);
            var content2      = "Second Test Answer";
            var answer2       = discussionsService.AddAnswer(content2, testUser, addedQuestion.Id);
            var result        = discussionsService.GetUserAnswersVM(testUser.Id);

            //Assert
            Assert.True(result.Count == 2);
            Assert.True(result.Any(x => x.Content == answer1.Content));
            Assert.True(result.Any(x => x.Content == answer2.Content));

            Assert.True(result.Any(x => x.PublishTime == answer1.PublishTime));
            Assert.True(result.Any(x => x.PublishTime == answer2.PublishTime));

            Assert.True(result.Any(x => x.QuestionId == addedQuestion.Id));
            Assert.True(result.Any(x => x.QuestionTitle == addedQuestion.Title));
        }
Пример #2
0
        public void GetUserDisLikedAnswersIdList_Must_Return_User_Liked_Answers_Ids_In_List()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM();
            var content1           = "Test Answer";
            var content2           = "Test Answer";

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();

            var addedQuestion = discussionsService.AddQuestion(testQBM, testUser);

            var answer1 = discussionsService.AddAnswer(content1, testUser, addedQuestion.Id);
            var answer2 = discussionsService.AddAnswer(content2, testUser, addedQuestion.Id);

            //// Like First Answer
            var testAnswerRatingBM1 = GetTestAnswerRatingBMRatingDown(answer1, testUser);
            var ratedAnswer1        = discussionsService.RateAnswer(testAnswerRatingBM1, testUser);

            //// Like Secont Answer
            testAnswerRatingBM1 = GetTestAnswerRatingBMRatingDown(answer2, testUser);
            var ratedAnswer2 = discussionsService.RateAnswer(testAnswerRatingBM1, testUser);

            var userLikedAnswers = discussionsService.GetUserDisLikedAnswersIdList(testUser.Id);

            //Assert

            Assert.True(userLikedAnswers.Count == 2);
            Assert.True(userLikedAnswers.Contains(answer1.Id));
            Assert.True(userLikedAnswers.Contains(answer2.Id));
        }
Пример #3
0
        public void AddAnswer_Must_Return_NULL_If_Publisher_Isnt_Registered()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();

            //Act
            var content    = "Test Answer";
            var nonUser    = StaticMethods.GetTestUser();
            var questionId = 10;
            var answer     = discussionsService.AddAnswer(content, nonUser, questionId);

            //Assert
            Assert.True(answer == null);
        }
Пример #4
0
        public void AddAnswer_Must_Return_NULL_If_There_Isnt_Question_With_Given_Id()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var content        = "Test Answer";
            var testQuestionID = 10;
            var answer         = discussionsService.AddAnswer(content, testUser, testQuestionID);

            //Assert
            Assert.True(answer == null);
        }
Пример #5
0
        public void IsUserDisLikedAnswer_Must_Return_False_If_User_Not_DisLiked_Given_Answer()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM();
            var content            = "Test Answer";

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var addedQuestion = discussionsService.AddQuestion(testQBM, testUser);
            var answer        = discussionsService.AddAnswer(content, testUser, addedQuestion.Id);
            var result        = discussionsService.IsUserDisLikedAnswer(answer.Id, testUser.Id);

            //Assert
            Assert.True(!result);
        }
Пример #6
0
        public void DeleteAnswer_Must_Return_Deleted_Answer()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM();

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var addedQuestion = discussionsService.AddQuestion(testQBM, testUser);
            var content       = "Test Answer";
            var answer        = discussionsService.AddAnswer(content, testUser, addedQuestion.Id);
            var deletedAnswer = discussionsService.DeleteAnswer(answer.Id, addedQuestion.Id, testUser.Id);

            //Assert
            Assert.True(deletedAnswer.Id == answer.Id);
        }
Пример #7
0
        public void AddAnswer_Must_Return_Created_Answer()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM();

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var addedQuestion = discussionsService.AddQuestion(testQBM, testUser);
            var content       = "Test Answer";
            var answer        = discussionsService.AddAnswer(content, testUser, addedQuestion.Id);

            //Assert
            Assert.True(answer != null);
            Assert.True(answer.Content == content);
            Assert.True(answer.PublisherId == testUser.Id);
            Assert.True(answer.QuestionId == addedQuestion.Id);
        }
Пример #8
0
        public void RateAnswer_Must_Return_NULL_If_RatedDown_Twice()
        {
            // Arrange
            var db = StaticMethods.GetDb();
            var discussionsService = new DiscussionsService(db, this.mapper);
            var testUser           = StaticMethods.GetTestUser();
            var testQBM            = GetTestQuestionBM();

            //Act
            db.Users.Add(testUser);
            db.SaveChanges();
            var addedQuestion      = discussionsService.AddQuestion(testQBM, testUser);
            var content            = "Test Answer";
            var answer             = discussionsService.AddAnswer(content, testUser, addedQuestion.Id);
            var testAnswerRatingBM = GetTestAnswerRatingBMRatingDown(answer, testUser);
            var ratedAnswer        = discussionsService.RateAnswer(testAnswerRatingBM, testUser);
            var thisMustBeNull     = discussionsService.RateAnswer(testAnswerRatingBM, testUser);

            //Assert
            Assert.True(thisMustBeNull == null);
        }