Esempio n. 1
0
        public void CheckIfEmailAlreadyExistsSuccessfully()
        {
            //Given
            var userSet = new List <User> {
                new User
                {
                    Id            = 1,
                    Vehicles      = new List <Vehicle> {
                    },
                    Email         = "*****@*****.**",
                    PhoneNumber   = "192-875-3246",
                    Authorization = User.AuthLevel.User,
                    UserName      = "******",
                    Password      = "******",
                }
            };

            var queryableUserSet = userSet.AsQueryable();

            Mock <DbSet <User> > MockSet = new Mock <DbSet <User> >();

            MockSet.As <IQueryable <User> >().Setup(m => m.Provider).Returns(queryableUserSet.Provider);
            MockSet.As <IQueryable <User> >().Setup(m => m.Expression).Callback(() => {}).Returns(queryableUserSet.Expression);
            MockSet.As <IQueryable <User> >().Setup(m => m.ElementType).Returns(queryableUserSet.ElementType);
            MockSet.As <IQueryable <User> >().Setup(m => m.GetEnumerator()).Returns(queryableUserSet.GetEnumerator);
            Mock <DatabaseContext> MockContext = new Mock <DatabaseContext>();

            MockContext.Setup(p => p.Users).Returns(MockSet.Object);
            UserDatabaseService UserService = new UserDatabaseService(MockContext.Object);

            //When
            var success = UserService.EmailExists("*****@*****.**");
            var failure = UserService.EmailExists("*****@*****.**");

            //Then
            MockContext.Verify(p => p.Users, Times.Exactly(2));
            success.Should().BeTrue();
            failure.Should().BeFalse();
        }