public async Task CanFindById()
        {
            await userStore.CreateAsync(testUser, default(CancellationToken));

            var result = await userStore.FindByIdAsync(testUser.Id, default(CancellationToken));

            Assert.True(testUser.PropertiesEqual(result));
        }
示例#2
0
        public async Task SqlUserStoreMethodsThrowWhenDisposedTest()
        {
            var store = new MongoUserStore(Container.MongoRepository.Context);

            store.Dispose();
            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.AddClaimsAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.AddLoginAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.AddToRoleAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.GetClaimsAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.GetLoginsAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.GetRolesAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.IsInRoleAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.RemoveClaimsAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.RemoveLoginAsync(null, null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(
                async() => await store.RemoveFromRoleAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.RemoveClaimsAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.ReplaceClaimAsync(null, null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.FindByLoginAsync(null, null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.FindByIdAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.FindByNameAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.CreateAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.UpdateAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.DeleteAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(
                async() => await store.SetEmailConfirmedAsync(null, true));

            await Assert.ThrowsAsync <ObjectDisposedException>(async() => await store.GetEmailConfirmedAsync(null));

            await Assert.ThrowsAsync <ObjectDisposedException>(
                async() => await store.SetPhoneNumberConfirmedAsync(null, true));

            await Assert.ThrowsAsync <ObjectDisposedException>(
                async() => await store.GetPhoneNumberConfirmedAsync(null));
        }
        public async Task CreateAsync_ShouldCreateUser()
        {
            // ARRANGE
            MongoIdentityUser user;

            using (var userStore = new MongoUserStore <MongoIdentityUser>(options) as IUserStore <MongoIdentityUser>)
            {
                user = new MongoIdentityUser(TestUtils.RandomString(10));
                await userStore.CreateAsync(user, CancellationToken.None);

                var retrievedUser = await userStore.FindByIdAsync(user.Id, CancellationToken.None);

                Assert.NotNull(retrievedUser);
                Assert.Equal(user.UserName, retrievedUser.UserName);
                Assert.Equal(user.NormalizedUserName, retrievedUser.NormalizedUserName);
            }
        }
示例#4
0
        public async Task MongoIdentityUser_CanBeSavedAndRetrieved_WhenItBecomesTheSubclass()
        {
            var username      = TestUtils.RandomString(10);
            var countryName   = TestUtils.RandomString(10);
            var loginProvider = TestUtils.RandomString(5);
            var providerKey   = TestUtils.RandomString(5);
            var displayName   = TestUtils.RandomString(5);
            var myCustomThing = TestUtils.RandomString(10);
            var user          = new MyIdentityUser(username)
            {
                MyCustomThing = myCustomThing
            };

            user.AddClaim(new Claim(ClaimTypes.Country, countryName));
            user.AddLogin(new MongoUserLogin(new UserLoginInfo(loginProvider, providerKey, displayName)));

            using (var dbProvider = MongoDbServerTestUtils.CreateDatabase())
            {
                var store = new MongoUserStore <MyIdentityUser>(dbProvider.Database);

                // ACT, ASSERT
                var result = await store.CreateAsync(user, CancellationToken.None);

                Assert.True(result.Succeeded);

                // ACT, ASSERT
                var retrievedUser = await store.FindByIdAsync(user.Id, CancellationToken.None);

                Assert.NotNull(retrievedUser);
                Assert.Equal(username, retrievedUser.UserName);
                Assert.Equal(myCustomThing, retrievedUser.MyCustomThing);

                var countryClaim = retrievedUser.Claims.FirstOrDefault(x => x.ClaimType == ClaimTypes.Country);
                Assert.NotNull(countryClaim);
                Assert.Equal(countryName, countryClaim.ClaimValue);

                var retrievedLoginProvider = retrievedUser.Logins.FirstOrDefault(x => x.LoginProvider == loginProvider);
                Assert.NotNull(retrievedLoginProvider);
                Assert.Equal(providerKey, retrievedLoginProvider.ProviderKey);
                Assert.Equal(displayName, retrievedLoginProvider.ProviderDisplayName);
            }
        }
        public async Task MongoIdentityUser_ShouldSaveAndRetrieveTheFutureOccuranceCorrectly()
        {
            var lockoutEndDate = new DateTime(2017, 2, 1, 0, 0, 0, DateTimeKind.Utc).AddTicks(8996910);
            var user           = new MyIdentityUser(TestUtils.RandomString(10));

            user.LockUntil(lockoutEndDate);



            using (var store = new MongoUserStore <MyIdentityUser>(options))
            {
                // ACT
                var result = await store.CreateAsync(user, CancellationToken.None);

                // ASSERT
                Assert.True(result.Succeeded);

                var retrievedUser = await store.FindByIdAsync(user.Id, CancellationToken.None);

                Assert.Equal(user.LockoutEndDate, retrievedUser.LockoutEndDate);
            }
        }