public void GetRolesForDisplayTests()
        {
            //Arrange
            var allRoles = UserRoleAdminPageModelServiceTests.GetAllRoleModels();
            var user     = UserRoleAdminPageModelServiceTests.GetUser();

            //Act
            var result = new UserRoleAdminPageModelService().GetRolesForDisplay(user, allRoles);

            //Assert
            Assert.IsNotNull(result);

            var kvp = result.First(r => r.Key == "AllRoles");

            Assert.AreEqual("AllRoles", kvp.Key);

            List <string> allRolesList = kvp.Value as List <string>;

            Assert.IsNotNull(allRolesList);
            Assert.IsTrue(allRolesList.Count == 2);
            Assert.IsFalse(allRolesList.Contains("Role1"));
            Assert.IsTrue(allRolesList.Contains("Role2"));
            Assert.IsTrue(allRolesList.Contains("Role3"));

            kvp = result.First(r => r.Key == "UserRoles");
            Assert.AreEqual("UserRoles", kvp.Key);

            List <string> userRolesList = kvp.Value as List <string>;

            Assert.IsNotNull(userRolesList);
            Assert.IsTrue(userRolesList.Count == 1);
            Assert.IsTrue(userRolesList.Contains("Role1"));
        }
        public void GetRolesForDisplayInvalidTests()
        {
            //Arrange
            var allRoles = UserRoleAdminPageModelServiceTests.GetAllRoleModels();
            var user     = UserRoleAdminPageModelServiceTests.GetUser();

            //Act
            var result = new UserRoleAdminPageModelService().GetRolesForDisplay(null, allRoles);

            //Assert
            Assert.IsNotNull(result);
            var kvp = result.First(r => r.Key == "AllRoles");

            Assert.AreEqual("AllRoles", kvp.Key);

            List <string> allRolesList = kvp.Value as List <string>;

            Assert.IsNotNull(allRolesList);
            Assert.IsTrue(allRolesList.Count == 3);
            Assert.IsTrue(allRolesList.Contains("Role1"));
            Assert.IsTrue(allRolesList.Contains("Role2"));
            Assert.IsTrue(allRolesList.Contains("Role3"));

            result = new UserRoleAdminPageModelService().GetRolesForDisplay(user, null);

            //Assert
            Assert.IsNotNull(result);
            kvp = result.First(r => r.Key == "AllRoles");
            Assert.AreEqual("AllRoles", kvp.Key);

            allRolesList = kvp.Value as List <string>;
            Assert.IsNotNull(allRolesList);
            Assert.IsTrue(allRolesList.Count == 0);

            var copyuser = user;

            copyuser.Roles = null;
            result         = new UserRoleAdminPageModelService().GetRolesForDisplay(copyuser, allRoles);

            //Assert
            Assert.IsNotNull(result);
            kvp = result.First(r => r.Key == "AllRoles");
            Assert.AreEqual("AllRoles", kvp.Key);

            allRolesList = kvp.Value as List <string>;
            Assert.IsNotNull(allRolesList);
            Assert.IsTrue(allRolesList.Count == 3);
            Assert.IsTrue(allRolesList.Contains("Role1"));
            Assert.IsTrue(allRolesList.Contains("Role2"));
            Assert.IsTrue(allRolesList.Contains("Role3"));

            var copyallroles = allRoles;

            copyallroles.Roles = null;

            result = new UserRoleAdminPageModelService().GetRolesForDisplay(user, copyallroles);

            //Assert
            Assert.IsNotNull(result);
            kvp = result.First(r => r.Key == "AllRoles");
            Assert.AreEqual("AllRoles", kvp.Key);

            allRolesList = kvp.Value as List <string>;
            Assert.IsNotNull(allRolesList);
            Assert.IsTrue(allRolesList.Count == 0);
        }