public async Task GetEmailConfirmedAsync_Should_Return_True_If_Email_Confirmed() { const string userName = "******"; const string userId = "RavenUsers/Tugberk"; const string email = "*****@*****.**"; using (IDocumentStore store = CreateEmbeddableStore()) { using (IAsyncDocumentSession ses = store.OpenAsyncSession()) { ses.Advanced.UseOptimisticConcurrency = true; RavenUser user = new RavenUser(userName, email); RavenUserEmail userEmail = new RavenUserEmail(email, user.Id); userEmail.SetConfirmed(); await ses.StoreAsync(user); await ses.StoreAsync(userEmail); await ses.SaveChangesAsync(); } using (IAsyncDocumentSession ses = store.OpenAsyncSession()) { ses.Advanced.UseOptimisticConcurrency = true; IUserEmailStore <RavenUser> userEmailStore = new RavenUserStore <RavenUser>(ses); RavenUser ravenUser = await ses.LoadAsync <RavenUser>(userId); bool isConfirmed = await userEmailStore.GetEmailConfirmedAsync(ravenUser); Assert.True(isConfirmed); } } }
public async Task SetEmailConfirmedAsync(TUser user, bool confirmed) { if (user == null) { throw new ArgumentNullException("user"); } if (user.Email == null) { throw new InvalidOperationException("Cannot set the confirmation status of the e-mail because user doesn't have an e-mail."); } RavenUserEmail userEmail = await GetUserEmailAsync(user.Email).ConfigureAwait(false); if (userEmail == null) { throw new InvalidOperationException("Cannot set the confirmation status of the e-mail because user doesn't have an e-mail as RavenUserEmail document."); } if (confirmed) { userEmail.SetConfirmed(); } else { userEmail.SetUnconfirmed(); } }
public async Task SetEmailConfirmedAsync_With_Confirmed_Param_False_Should_Set_The_Email_As_Not_Confirmed_If_Confirmed_Already() { const string userName = "******"; const string userId = "RavenUsers/Tugberk"; const string email = "*****@*****.**"; using (IDocumentStore store = CreateEmbeddableStore()) { using (IAsyncDocumentSession ses = store.OpenAsyncSession()) { ses.Advanced.UseOptimisticConcurrency = true; RavenUser user = new RavenUser(userName, email); RavenUserEmail userEmail = new RavenUserEmail(email, user.Id); userEmail.SetConfirmed(); await ses.StoreAsync(user); await ses.StoreAsync(userEmail); await ses.SaveChangesAsync(); } using (IAsyncDocumentSession ses = store.OpenAsyncSession()) { ses.Advanced.UseOptimisticConcurrency = true; IUserEmailStore <RavenUser> userEmailStore = new RavenUserStore <RavenUser>(ses); RavenUser ravenUser = await ses.LoadAsync <RavenUser>(userId); await userEmailStore.SetEmailConfirmedAsync(ravenUser, confirmed : false); await ses.SaveChangesAsync(); } using (IAsyncDocumentSession ses = store.OpenAsyncSession()) { ses.Advanced.UseOptimisticConcurrency = true; string keyToLookFor = RavenUserEmail.GenerateKey(email); RavenUserEmail userEmail = await ses.LoadAsync <RavenUserEmail>(keyToLookFor); Assert.Null(userEmail.ConfirmationRecord); } } }