public void RemoveUncommitedRoleTest() { ISecurityRepository client = GetClient(); var account = new Account() { UserName = "******" }; var role = new Role() { Name = "testRole" }; var roleAssignment = new RoleAssignment { Account = account, AccountId = account.AccountId, Role = role, RoleId = role.RoleId }; client.Attach(account); // add role account.RoleAssignments.Add(roleAssignment); Assert.True(client.IsAttachedTo(roleAssignment)); // remove uncommited role account.RoleAssignments.Remove(roleAssignment); client.Remove(roleAssignment); Assert.False(client.IsAttachedTo(roleAssignment)); }
public void CreateAccountWithNewRoleTest() { const string roleName = "testRole"; const string userName = "******"; ISecurityRepository client = GetClient(); var role = new Role() { Name = roleName }; var account = new Account() { UserName = userName }; var roleAssignment = new RoleAssignment { Account = account, AccountId = account.AccountId, Role = role, RoleId = role.RoleId }; // add role to account account.RoleAssignments.Add(roleAssignment); client.Add(role); client.Add(account); client.UnitOfWork.Commit(); string accountId = account.AccountId; string roleId = role.RoleId; EndActionClearAccount(userName); EndActionClearRole(roleName); client = GetClient(); int count = client.Accounts.Where(x => x.AccountId == accountId).Count(); Assert.Equal(count, 1); count = client.Roles.Where(x => x.RoleId == roleId).Count(); Assert.Equal(count, 1); count = client.RoleAssignments.Where(x => x.RoleId == roleId && x.AccountId == accountId).Count(); Assert.Equal(count, 1); }
public void Can_remove_add_the_same_role() { var accountName = "Account remove_add_the_same_role"; var roleName = "Role remove_add_the_same_role"; // create one account with one role var accountId = AddAccount(accountName); var roleId = AddRole(roleName); AddRoleAssignment(roleId, accountId); var client = GetRepository(); var aviableRole = client.Roles.Where(x => x.Name == roleName).SingleOrDefault(); Assert.NotNull(aviableRole); var account = client.Accounts.Expand("RoleAssignments/Role").Where(x => x.AccountId == accountId).SingleOrDefault(); Assert.NotNull(account); var checkRole = account.RoleAssignments.SingleOrDefault(x => x.RoleId == roleId).Role; Assert.NotNull(checkRole); // remove existing role from account var item = account.RoleAssignments.First(x => x.RoleId == roleId); account.RoleAssignments.Remove(item); // add the same role again item = new RoleAssignment {AccountId = accountId, Role = aviableRole, RoleId = aviableRole.RoleId}; account.RoleAssignments.Add(item); client.UnitOfWork.Commit(); client = GetRepository(); account = client.Accounts.Expand("RoleAssignments/Role").Where(x => x.UserName == accountName).SingleOrDefault(); Assert.NotNull(account.RoleAssignments.Where(x => x.Role.Name == roleName).SingleOrDefault()); }
private void AddRoleAssignment(string roleId, int accountId) { var client = GetRepository(); var account = client.Accounts.Expand("RoleAssignments/Role").Where(x => x.AccountId == accountId).SingleOrDefault(); var rolePermission = new RoleAssignment { RoleId = roleId, AccountId = accountId }; account.RoleAssignments.Add(rolePermission); client.UnitOfWork.Commit(); }
public void Can_add_remove_add() { var accountName = "Account add_remove_add"; var roleName = "Role create_role_graph"; var accountId = AddAccount(accountName); var roleId = AddRole(roleName); var client = GetRepository(); var role = client.Roles.Where(x => x.Name == roleName).SingleOrDefault(); Assert.NotNull(role); var account = client.Accounts.Expand("RoleAssignments/Role").Where(x => x.AccountId == accountId).SingleOrDefault(); Assert.NotNull(account); //var newRole = client.Roles.Where(x => x.Name == roleName).SingleOrDefault(); // need to reload role in new repository //var roleAssignment = new RoleAssignment { RoleId = roleId, AccountId = accountId};// worked var roleAssignment = new RoleAssignment { RoleId = role.RoleId, AccountId = accountId, Role = role }; account.RoleAssignments.Add(roleAssignment); account.RoleAssignments.Remove(roleAssignment); //Deattach here account.RoleAssignments.Add(roleAssignment); client.UnitOfWork.Commit(); client = GetRepository(); account = client.Accounts.Expand("RoleAssignments/Role").Where(x => x.UserName == accountName).SingleOrDefault(); Assert.NotNull(account.RoleAssignments.Where(x => x.Role.Name == roleName).SingleOrDefault()); }