public void GetNextInLine_ShouldNotReturnUser_WhoHavePassedTheQuestionBefore() { //Arrange var question = new Question{ID = 1}; var question2 = new Question{ID = 2}; var user = new User { Answers = new Collection<Answer>(), Questions = new Collection<Question>(),Connected = true}; var pending = new PendingQuestion {Question = question, Status = false, User = user}; var pending2 = new PendingQuestion {Question = question2, Status = false, User = user}; user.PendingQuestions = new Collection<PendingQuestion>{pending, pending2}; var users = new List<User> {user}; _userRepositoryMock.Setup(x => x.GetAvailableUsers()).Returns(users); _dataFactoryMock.Setup(x => x.UserRepository).Returns(_userRepositoryMock.Object); _advisorLocator = new AdvisorLocator(_dataFactoryMock.Object); //Act var result = _advisorLocator.GetNextInLine(question2.ID); //Assert Assert.That(result, Is.Null); }
public void GetNextInLine_ShouldReturnUser_WhoWaitedLongest_AndHaveNotRecivedAnyQuestionsBefore() { //Arrange const int otherQuestionId = 1; const int questionId = 2; #region Users var users = new List<User> { new User { ID = 1, Created = new DateTime(2013, 1, 1), Answers = new Collection<Answer> { new Answer { TimeStamp = new DateTime(2012, 11, 11) } }, PendingQuestions = new Collection<PendingQuestion>() { new PendingQuestion { TimeStamp = new DateTime(2013, 3, 3), Question = new Question{ID = otherQuestionId} } }, Connected = true, Questions = new Collection<Question>() }, new User { ID = 2, Created = new DateTime(2013, 2, 2), Answers = new Collection<Answer>(), PendingQuestions = new Collection<PendingQuestion>() { new PendingQuestion { TimeStamp = new DateTime(2013, 2, 2), Question = new Question{ID = questionId} } }, Connected = true, Questions = new Collection<Question>() }, new User { ID = 3, Created = new DateTime(2013,03,03), Answers = new Collection<Answer>(), PendingQuestions = new Collection<PendingQuestion>() { new PendingQuestion { TimeStamp = new DateTime(2013, 3, 3), Question = new Question{ID = otherQuestionId} } }, Connected = true, Questions = new Collection<Question>() } }; #endregion _userRepositoryMock.Setup(x => x.GetAvailableUsers()).Returns(users); _dataFactoryMock.Setup(x => x.UserRepository).Returns(_userRepositoryMock.Object); _advisorLocator = new AdvisorLocator(_dataFactoryMock.Object); const int expectedUserId = 3; //Act var result = _advisorLocator.GetNextInLine(questionId); //Assert Assert.That(result.ID, Is.EqualTo(expectedUserId)); }
public void GetNextInLine_ShouldNotReturnUser_WhoSubmittedQuestion() { //Arrange var question = new Question { ID = 1 }; var user = new User { Questions = new Collection<Question>{question}, Answers = new Collection<Answer>(), Connected = true, PendingQuestions = new Collection<PendingQuestion>()}; var users = new List<User> { user }; _userRepositoryMock.Setup(x => x.GetAvailableUsers()).Returns(users); _dataFactoryMock.Setup(x => x.UserRepository).Returns(_userRepositoryMock.Object); _advisorLocator = new AdvisorLocator(_dataFactoryMock.Object); //Act var result = _advisorLocator.GetNextInLine(question.ID); //Assert Assert.That(result, Is.Null); }