public void Should_Get_NewUser_When_Requesting_As_Self() { IIdentityProvider provider = new CloudIdentityProvider(new RackspaceCloudIdentity { Username = _testUser.Username, Password = _newTestUserPassword }); var user = provider.GetUser(_testUser.Id); Assert.IsNotNull(user); }
public void Should_Throw_Exception_When_Trying_To_Get_Details_Of_A_Different_User_When_Retrieving_User_By_Id_With_Non_Admin_Account() { IIdentityProvider serviceProvider = new CloudIdentityProvider(_testIdentity); try { var details = serviceProvider.GetUser(_adminUserDetails.Id); throw new Exception("This code path is invalid, exception was expected."); } catch (net.openstack.Core.Exceptions.Response.ResponseException) { Assert.IsTrue(true); } }
public void Should_Throw_Exception_When_Requesting_The_NewUser_After_It_Has_Been_Deleted_When_Requesting_As_User_Admin() { IIdentityProvider provider = new CloudIdentityProvider(_testIdentity); try { provider.GetUser(_testUser.Id); throw new Exception("This code path is invalid, exception was expected."); } catch(Exception ) { Assert.IsTrue(true); } }
public void Should_List_Details_Of_Other_User_When_Retrieving_User_By_Id_With_Admin_Account() { IIdentityProvider serviceProvider = new CloudIdentityProvider(_testAdminIdentity); var details = serviceProvider.GetUser(_userDetails.Id); Assert.IsNotNull(details); Assert.AreEqual(_testIdentity.Username, details.Username); }
public void Should_Update_NewUser_Username_And_Email_When_Requesting_As_Self() { IIdentityProvider provider = new CloudIdentityProvider(new RackspaceCloudIdentity { Username = _testUser.Username, Password = _newTestUserPassword }); User user = provider.GetUser(_testUser.Id); user.Username = "******"; user.Email = "*****@*****.**"; user.Enabled = true; var updatedUser = provider.UpdateUser(user); Assert.IsNotNull(updatedUser); Assert.AreEqual("openstacknettestuser42", updatedUser.Username); Assert.AreEqual("*****@*****.**", updatedUser.Email); Assert.AreEqual(true, updatedUser.Enabled); }
public void Should_Update_NewUser_Username_And_Email_And_Default_Region_When_Requesting_As_User_Admin() { IIdentityProvider provider = new CloudIdentityProvider(_testIdentity); User user = provider.GetUser(_testUser.Id); user.Username = "******"; user.Email = "*****@*****.**"; user.Enabled = true; user.DefaultRegion = "DFW"; var updatedUser = provider.UpdateUser(user); Assert.IsNotNull(updatedUser); Assert.AreEqual("openstacknettestuser32", updatedUser.Username); Assert.AreEqual("*****@*****.**", updatedUser.Email); Assert.AreEqual(true, updatedUser.Enabled); Assert.AreEqual("DFW", updatedUser.DefaultRegion); }
public void TestAddUserUpdateUserDeleteUser() { string username = GenerateUsername(); NewUser newUser = new NewUser(username, username + "@example.com"); IIdentityProvider provider = new CloudIdentityProvider(Bootstrapper.Settings.TestIdentity); 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)); 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 } }
public void TestGetUser() { IIdentityProvider provider = new CloudIdentityProvider(Bootstrapper.Settings.TestIdentity); User userByName = provider.GetUserByName(Bootstrapper.Settings.TestIdentity.Username); Assert.IsNotNull(userByName); Assert.AreEqual(Bootstrapper.Settings.TestIdentity.Username, userByName.Username); Assert.IsNotNull(userByName.Id); User user = provider.GetUser(userByName.Id); Assert.IsNotNull(user); Assert.AreEqual(Bootstrapper.Settings.TestIdentity.Username, user.Username); Assert.AreEqual(userByName.Id, user.Id); Console.WriteLine("User \"{0}\" (id: {1})", user.Username, user.Id); if (!user.Enabled) Console.WriteLine(" Disabled"); if (!string.IsNullOrEmpty(user.Email)) Console.WriteLine(" Email: {0}", user.Email); if (!string.IsNullOrEmpty(user.DefaultRegion)) Console.WriteLine(" Default region: {0}", user.DefaultRegion); }