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);
        }
Esempio n. 7
0
        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
            }
        }
Esempio n. 8
0
        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);
        }