Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }