public async Task Register_EmailConflict()
        {
            var client = await Utilities.GetClientWithCsrfAsync();

            // get a client before getting a service
            var usermanager = Utilities.GetService <UserManager <AppUser> >();
            var mockid      = Guid.NewGuid().ToString();
            var mockemail   = Utilities.UniqueEmail();
            await usermanager.CreateAsync(new AppUser()
            {
                Id       = mockid,
                UserName = mockid.Replace('-', '_'),
                Email    = mockemail
            });

            Assert.IsNotNull(await usermanager.FindByIdAsync(mockid));

            var form = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair <string, string>("email", mockemail)
            });
            var result = await client.PostAsync("api/account/register", form);

            Assert.AreEqual(HttpStatusCode.Unauthorized, result.StatusCode);
        }
        public async Task Init()
        {
            await Utilities.GetClientWithCsrfAsync();

            var context = Utilities.GetService <AppDbContext>();

            context.Users.RemoveRange(context.Users);
            await context.SaveChangesAsync();
        }
        public async Task ConfirmEmail_UserNameConflict()
        {
            var client = await Utilities.GetClientWithCsrfAsync();

            var email = Utilities.UniqueEmail();
            var form  = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair <string, string>("email", email)
            });
            var result = await client.PostAsync("api/account/register", form);

            result.EnsureSuccessStatusCode();

            Assert.IsNotNull(TestEmailSender.Emails[email]);

            var usermanager  = Utilities.GetService <UserManager <AppUser> >();
            var mockid       = Guid.NewGuid().ToString();
            var mockemail    = Utilities.UniqueEmail();
            var mockusername = Utilities.UniqueUserName();
            await usermanager.CreateAsync(new AppUser()
            {
                Id       = mockid,
                UserName = mockusername,
                Email    = mockemail
            });

            Assert.IsNotNull(await usermanager.FindByIdAsync(mockid));
            GetGuidAndToken(TestEmailSender.Emails[email], out var guid, out var token);

            var form2 = Form(new
            {
                guid,
                token,
                username = mockusername,
                password = "******"
            });

            var result2 = await client.PostAsync("api/account/confirmemail", form2);

            Assert.AreEqual(HttpStatusCode.Unauthorized, result2.StatusCode);
            // Assert.AreEqual("DuplicateUserName", await result2.Content.ReadAsStringAsync());
        }