public static FluentProvider<IList<TestUser>> WithConfirmedUsers(
            this MembershipProvider provider, int count, out string prefix)
        {
            prefix = Guid.NewGuid().ToString("N");
            var users = new List<TestUser>();
            for (var i = 0; i < count; i++)
            {
                var profile = new Dictionary<string, object>();
                var userName = prefix + "_" + i;
                var email = prefix + i + "@test.com";
                var testUser = new TestUser(userName, email, DefaultPassword, profile);
                users.Add(testUser);
            }

            Action<IList<TestUser>> lazyCreate = t => t.ToList().ForEach(
                u =>
                    {
                        if (provider.HasEmailColumnDefined())
                        {
                            u.Profile.Add(provider.AsBetter().UserEmailColumn, u.Email);
                        }

                        provider.AsBetter().CreateUserAndAccount(u.UserName, u.Password, u.Profile);
                    });
            return new FluentProvider<IList<TestUser>>(provider, users, lazyCreate);
        }
        public static FluentProvider<TestUser> WithConfirmedUser(this MembershipProvider provider)
        {
            var prefix = Guid.NewGuid().ToString("N");
            var profile = new Dictionary<string, object>();
            var userName = prefix;
            var email = prefix + "@test.com";

            Action<TestUser> lazyCreate = t =>
                {
                    if (provider.HasEmailColumnDefined())
                    {
                        profile.Add(provider.AsBetter().UserEmailColumn, t.Email);
                    }

                    provider.AsBetter().CreateUserAndAccount(t.UserName, t.Password, t.Profile);
                };
            var testUser = new TestUser(userName, email, DefaultPassword, profile);
            return new FluentProvider<TestUser>(provider, testUser, lazyCreate);
        }
 public static bool HasEmailColumnDefined(this MembershipProvider provider)
 {
     return provider.AsBetter().HasEmailColumnDefined;
 }
 public static int PasswordAttemptWindowInSeconds(this MembershipProvider provider)
 {
     return provider.AsBetter().PasswordAttemptWindowInSeconds;
 }
        public static FluentProvider<TestUser> WithUnregisteredUser(
            this MembershipProvider provider, string userName = null, string email = null)
        {
            var userNameParam = userName ?? Guid.NewGuid().ToString("N");
            var emailParam = email ?? userNameParam + "@test.com";
            if (!provider.AsBetter().HasEmailColumnDefined)
            {
                emailParam = null;
            }

            return new FluentProvider<TestUser>(
                provider, 
                new TestUser(userNameParam, emailParam, DefaultPassword, new Dictionary<string, object>()), 
                t => { });
        }