示例#1
0
        public async void CreateUsertThanTryToLoginWithProvidedCredentitials()
        {
            DocDbContext db = TestDbContext.GetDocDbContext();
            UserService  us = new UserService(db);

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name1",
                Surname  = "surname1"
            });


            AccountController ac = new AccountController(new Mock <ILogger <AccountController> >().Object, us, null, null);

            var urlHelperFactory = new Mock <IUrlHelperFactory>();
            //urlHelperFactory
            //    .Setup(_ => _.SignInAsync(It.IsAny<HttpContext>(), It.IsAny<string>(), It.IsAny<ClaimsPrincipal>(), It.IsAny<AuthenticationProperties>()))
            //    .Returns(Task.FromResult((object)null));

            var authServiceMock = new Mock <IAuthenticationService>();

            authServiceMock
            .Setup(_ => _.SignInAsync(It.IsAny <HttpContext>(), It.IsAny <string>(), It.IsAny <ClaimsPrincipal>(), It.IsAny <AuthenticationProperties>()))
            .Returns(Task.FromResult((object)null));

            var serviceProviderMock = new Mock <IServiceProvider>();

            serviceProviderMock
            .Setup(_ => _.GetService(typeof(IAuthenticationService)))
            .Returns(authServiceMock.Object);
            serviceProviderMock
            .Setup(_ => _.GetService(typeof(IUrlHelperFactory)))
            .Returns(urlHelperFactory.Object);
            //serviceProviderMock
            //    .Setup(_ => _.GetService(typeof(ITempDataDictionaryFactory)))
            //    .Returns(new Mock<ITempDataDictionaryFactory>().Object);

            ac.ControllerContext = new ControllerContext
            {
                HttpContext = new DefaultHttpContext
                {
                    RequestServices = serviceProviderMock.Object
                }
            };

            var res = await ac.Login("login1", "pass1");

            output.WriteLine(res.GetType().ToString());
            Assert.NotNull(res);
            Assert.Equal(typeof(RedirectToActionResult), res.GetType());

            Assert.True(true);
        }
        public static DocDbContext GetDocDbContext()
        {
            var options = new DbContextOptionsBuilder <DocDbContext>()
                          .UseInMemoryDatabase("in_mem_Test")
                          .Options;
            DocDbContext db = new DocDbContext(options);

            db.Database.EnsureDeleted();
            db.Database.EnsureCreated();
            return(db);
        }
示例#3
0
        async public void AddUserToDatabaseThenFindHimByFunctionThenRemoveHimAndTryToFindAgain()
        {
            DocDbContext db = TestDbContext.GetDocDbContext();
            UserService  us = new UserService(db);

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name2",
                Surname  = "surname2"
            });

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name3",
                Surname  = "surname3"
            });

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name4",
                Surname  = "surname4"
            });

            int userCount = await db.Users.CountAsync();

            Assert.Equal(3, userCount);

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name6",
                Surname  = "surname6"
            });

            User u = us.GetUserByLogin("login6");

            Assert.NotNull(u);

            Assert.True(us.RemoveUser(u.UserId));

            User u1 = us.GetUserByLogin("login6");

            Assert.Null(u1);
        }
示例#4
0
        public void GetUserFromUserListByLoginAndCheckIfAllFieldsAreValidAndPasswordIsHashed()
        {
            DocDbContext db = TestDbContext.GetDocDbContext();
            UserService  us = new UserService(db);

            us.AddUser(new User
            {
                Login    = "******",
                Password = "******",
                Name     = "name1",
                Surname  = "surname1"
            });

            User user = us.GetUserByLogin("login1");

            Console.WriteLine(user.Password);
            Assert.NotNull(user);
            Assert.Equal("login1", user.Login);

            Assert.Equal(User.HashPassword("pass1"), user.Password);
            Assert.Equal("name1", user.Name);
            Assert.Equal("surname1", user.Surname);
        }
示例#5
0
 public DocController(DocDbContext context)
 {
     _context = context;
 }