public void CleanupUsers() { IIdentityProvider provider = Bootstrapper.CreateIdentityProvider(); IEnumerable <User> users = provider.ListUsers(); foreach (User user in users) { if (string.IsNullOrEmpty(user.Username)) { continue; } if (!user.Username.StartsWith(TestUserPrefix, StringComparison.OrdinalIgnoreCase)) { continue; } bool deleted = provider.DeleteUser(user.Id); Assert.IsTrue(deleted); } }
public void TestAddUserUpdateUserDeleteUser() { string username = GenerateUsername(); NewUser newUser = new NewUser(username, username + "@example.com"); IIdentityProvider provider = Bootstrapper.CreateIdentityProvider(); NewUser user = provider.AddUser(newUser); Assert.IsNotNull(user); Assert.AreEqual(username, user.Username); Assert.IsFalse(string.IsNullOrEmpty(user.Id)); Assert.IsFalse(string.IsNullOrEmpty(user.Password)); IEnumerable <Role> roles = provider.GetRolesByUser(user.Id); Console.WriteLine("Roles for the created user:"******" {0} ({1}) # {2}", role.Name, role.Id, role.Description); } Assert.IsTrue(roles.Any(i => string.Equals(i.Name, "identity:default", StringComparison.OrdinalIgnoreCase))); try { // make sure we can't add the same user twice provider.AddUser(newUser); Assert.Fail("Expected a conflict"); } catch (ServiceConflictException) { // this makes the most sense } catch (ResponseException) { // this is allowed by the interface } User current = provider.GetUser(user.Id); Console.WriteLine(); Console.WriteLine("Updating email address..."); Console.WriteLine(); current.Email = username + "*****@*****.**"; User updated = provider.UpdateUser(current); Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented)); Assert.AreNotSame(current, updated); Assert.AreEqual(current.Email, updated.Email); Console.WriteLine(); Console.WriteLine("Updating username..."); Console.WriteLine(); current.Username = username + "2"; updated = provider.UpdateUser(current); Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented)); Assert.AreNotSame(current, updated); Assert.AreEqual(current.Username, updated.Username); Console.WriteLine(); Console.WriteLine("Updating default region..."); Console.WriteLine(); current.DefaultRegion = current.DefaultRegion == "SYD" ? "DFW" : "SYD"; updated = provider.UpdateUser(current); Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented)); Assert.AreNotSame(current, updated); Assert.AreEqual(current.DefaultRegion, updated.DefaultRegion); Console.WriteLine(); Console.WriteLine("Updating enabled (toggling twice)..."); Console.WriteLine(); current.Enabled = !current.Enabled; updated = provider.UpdateUser(current); Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented)); Assert.AreNotSame(current, updated); Assert.AreEqual(current.Enabled, updated.Enabled); current.Enabled = !current.Enabled; updated = provider.UpdateUser(current); Console.WriteLine(JsonConvert.SerializeObject(updated, Formatting.Indented)); Assert.AreNotSame(current, updated); Assert.AreEqual(current.Enabled, updated.Enabled); Assert.IsNotNull(provider.GetUser(user.Id)); bool deleted = provider.DeleteUser(user.Id); Assert.IsTrue(deleted); try { provider.GetUser(user.Id); Assert.Fail("Expected an exception"); } catch (ItemNotFoundException) { // this makes the most sense } catch (UserNotAuthorizedException) { // this is allowed by the interface, and some providers report it for security reasons } catch (ResponseException) { // this is allowed by the interface } }