Esempio n. 1
0
        public void CheckIfUsernameExistsShouldBeCalledInTheService()
        {
            //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.UsernameExists("testperson");
            var failure = UserService.UsernameExists("*****@*****.**");

            //Then
            MockContext.Verify(p => p.Users, Times.Exactly(2));

            success.Should().BeTrue();
            failure.Should().BeFalse();
        }