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)); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }