public async Task GetLoginsForUser() { // Create a session and user store for this test. var session = SessionFactory.OpenSession(); var userStore = new TestUserStore(session); // Create and save a user with a login. var user = new TestUser { UserName = "******" }; int numberOfLogins = 5; using (var transaction = session.BeginTransaction()) { await userStore.CreateAsync(user); for (int i = 0; i < numberOfLogins; i++) { var login = new UserLoginInfo("TestProviderList" + i, "ProviderKeyRemove" + i, "TestProviderList" + i); await userStore.AddLoginAsync(user, login); } transaction.Commit(); } // Check the user has an id and all the logins have been saved. Assert.IsNotNull(user.Id); Assert.AreEqual(user.Logins.Count, numberOfLogins); var userId = user.Id; // Create a new session and user store for this test, so that we actually hit the database and not the cache. userStore.Dispose(); session.Dispose(); session = SessionFactory.OpenSession(); userStore = new TestUserStore(session); // Load the user. TestUser loadUser; IList <UserLoginInfo> logins; using (var transaction = session.BeginTransaction()) { loadUser = await userStore.FindByIdAsync(userId); logins = await userStore.GetLoginsAsync(user); transaction.Commit(); } // Check we have the same user and that they have all of the logins. Assert.AreEqual(loadUser.Id, user.Id); Assert.AreEqual(loadUser.Logins.Count, numberOfLogins); Assert.AreEqual(logins.Count, numberOfLogins); }
public async Task GetLoginsForUser() { // Create a session and user store for this test. var session = SessionFactory.OpenSession(); var userStore = new TestUserStore<TestUser>(session); // Create and save a user with a login. var user = new TestUser { UserName = "******" }; int numberOfLogins = 5; using (var transaction = session.BeginTransaction()) { await userStore.CreateAsync(user); for (int i = 0; i < numberOfLogins; i++) { var login = new UserLoginInfo("TestProviderList" + i, "ProviderKeyRemove" + i); await userStore.AddLoginAsync(user, login); } transaction.Commit(); } // Check the user has an id and all the logins have been saved. Assert.IsNotNull(user.Id); Assert.AreEqual(user.Logins.Count, numberOfLogins); var userId = user.Id; // Create a new session and user store for this test, so that we actually hit the database and not the cache. userStore.Dispose(); session.Dispose(); session = SessionFactory.OpenSession(); userStore = new TestUserStore<TestUser>(session); // Load the user. TestUser loadUser; IList<UserLoginInfo> logins; using (var transaction = session.BeginTransaction()) { loadUser = await userStore.FindByIdAsync(userId); logins = await userStore.GetLoginsAsync(user); transaction.Commit(); } // Check we have the same user and that they have all of the logins. Assert.AreEqual(loadUser.Id, user.Id); Assert.AreEqual(loadUser.Logins.Count, numberOfLogins); Assert.AreEqual(logins.Count, numberOfLogins); }