public void CanCreateInfobaseUsers()
        {
            var opts     = new DbContextOptionsBuilder <ApplicationDbContext>();
            var services = new ServiceCollection();

            services.AddTransient <DbContextOptions <ApplicationDbContext> >((svc) => opts.UseInMemoryDatabase("usersManagerTest").Options);

            var cfgBuilder = new ConfigurationBuilder();
            Dictionary <string, string> keys = new Dictionary <string, string>();

            keys["Security:Password:RequireDigit"]     = "false";
            keys["Security:Password:RequireUppercase"] = "false";
            keys["Security:Password:RequireLowercase"] = "false";
            cfgBuilder.AddInMemoryCollection(keys);

            services.AddIdentityByConfiguration(cfgBuilder.Build());
            services.AddDbContext <ApplicationDbContext>();

            var provider = services.BuildServiceProvider();
            var ibUsers  = new InfobaseUsersManagerContext(provider);

            var user = ibUsers.CreateUser();

            user.Name = "Hello";
            user.Write();

            var usersArr = ibUsers.GetUsers();

            Assert.Equal(1, usersArr.Count());
            Assert.Equal("Hello", usersArr.Select(x => (InfobaseUserContext)x).First().Name);
        }
        public void CanCreateInfobaseUsers()
        {
            var opts     = new DbContextOptionsBuilder <ApplicationDbContext>();
            var services = new ServiceCollection();

            services.AddTransient(_ => opts.UseInMemoryDatabase("usersManagerTest").Options);
            services.AddTransient(_ => Mock.Of <ILogger <UserManager <ApplicationUser> > >());
            services.AddTransient(_ => Mock.Of <ILogger <DataProtectorTokenProvider <ApplicationUser> > >());

            var cfgBuilder = new ConfigurationBuilder();
            var keys       = new Dictionary <string, string>
            {
                ["Security:Password:RequireDigit"]     = "false",
                ["Security:Password:RequireUppercase"] = "false",
                ["Security:Password:RequireLowercase"] = "false"
            };

            cfgBuilder.AddInMemoryCollection(keys);

            services.AddIdentityByConfiguration(cfgBuilder.Build());
            services.AddDbContext <ApplicationDbContext>();

            var provider = services.BuildServiceProvider();
            var accMock  = new Mock <IHttpContextAccessor>();

            accMock.SetupGet(x => x.HttpContext).Returns(() =>
            {
                var hc = new Mock <HttpContext>();
                hc.SetupGet(x => x.RequestServices).Returns(provider);
                return(hc.Object);
            });
            var ibUsers = new InfobaseUsersManagerContext(accMock.Object);

            var user = ibUsers.CreateUser();

            user.Name = "Hello";
            user.Write();

            var usersArr = ibUsers.GetUsers();

            Assert.Equal(1, usersArr.Count());
            Assert.Equal("Hello", usersArr.Select(x => (InfobaseUserContext)x).First().Name);
        }