예제 #1
0
        public void GetAvailableUsers_ShouldNotReturnUsers_WhoHasAcceptedToAnswer_ButHasNotCompletedIt()
        {
            //Arrange
            var dbMock = new Mock<IRadvillContext>();

            var userOne = new User
            {
                ID = 1,
                Connected = true
            };

            var userDbSet = new FakeDbSet<User>
                 {
                     userOne
                 };

            dbMock.Setup(x => x.Users).Returns(userDbSet);

            var pendingQuestion = new PendingQuestion
            {
                ID = 1,
                User = userOne,
                Answer = null,
                Status = true
            };

            var pendingQuestionDbSet = new FakeDbSet<PendingQuestion>
                 {
                     pendingQuestion
                 };

            dbMock.Setup(x => x.PendingQuestions).Returns(pendingQuestionDbSet);
            dbMock.Setup(x => x.Set<User>()).Returns(userDbSet);

            var userRepository = new UserRepository(dbMock.Object);

            //Act
            var result = userRepository.GetAvailableUsers();

            //Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Count(), Is.EqualTo(0));
        }
예제 #2
0
        public void GetAvailableUsers_ShouldOnlyReturnConnectedUsers()
        {
            //Arrange
            var dbMock = new Mock<IRadvillContext>();

            var userOne = new User
            {
                ID = 1,
                Connected = false
            };

            var userTwo = new User
            {
                ID = 2,
                Connected = true
            };

            var userThree = new User
            {
                ID = 3,
                Connected = true
            };

            var userFour = new User
            {
                ID = 4,
                Connected = true
            };
            var userDbSet = new FakeDbSet<User>
                 {
                     userOne,
                     userTwo,
                     userThree,
                     userFour
                 };

            dbMock.Setup(x => x.Users).Returns(userDbSet);
            dbMock.Setup(x => x.PendingQuestions).Returns(new FakeDbSet<PendingQuestion>());
            dbMock.Setup(x => x.Set<User>()).Returns(userDbSet);

            var userRepository = new UserRepository(dbMock.Object);

            //Act
            var result = userRepository.GetAvailableUsers();

            //Assert
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Count(), Is.EqualTo(3));
            Assert.That(result.Any(x => !x.Connected), Is.False);
        }
예제 #3
0
        public void GetAvailableUsers_ShouldReturnUsers_WhoIsntAnswereringAQuestion()
        {
            //Arrange
             var dbMock = new Mock<IRadvillContext>();

             var userOne = new User
                 {
                     ID = 1,
                     Connected = true
                 };

             var userTwo = new User
                 {
                     ID = 2,
                     Connected = true
                 };

             var userDbSet = new FakeDbSet<User>
                 {
                     userOne,
                     userTwo
                 };

             dbMock.Setup(x => x.Users).Returns(userDbSet);

             var pendingQuestion = new PendingQuestion
                 {
                     ID = 1,
                     User = userOne
                 };

             var pendingQuestionDbSet = new FakeDbSet<PendingQuestion>
                 {
                     pendingQuestion
                 };

             dbMock.Setup(x => x.PendingQuestions).Returns(pendingQuestionDbSet);
            dbMock.Setup(x => x.Set<User>()).Returns(userDbSet);

             var userRepository = new UserRepository(dbMock.Object);

             //Act
             var result = userRepository.GetAvailableUsers();

             //Assert
             Assert.That(result, Is.Not.Null);
             Assert.That(result.Count(), Is.EqualTo(1));
             Assert.That(result.First().ID, Is.EqualTo(userTwo.ID));
        }