private IList <Role> AddExistingRoles(string securableItemName)
        {
            var role1 = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = Domain.Defaults.Authorization.AppGrain,
                SecurableItem = securableItemName,
                Name          = "role1" + Guid.NewGuid()
            };
            var role2 = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = Domain.Defaults.Authorization.AppGrain,
                SecurableItem = securableItemName,
                Name          = "role2" + Guid.NewGuid()
            };
            var role3 = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = Domain.Defaults.Authorization.AppGrain,
                SecurableItem = "sourcemartdesigner",
                Name          = "role3" + Guid.NewGuid()
            };
            var role4 = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = Domain.Defaults.Authorization.AppGrain,
                SecurableItem = securableItemName,
                Name          = "role4" + Guid.NewGuid()
            };

            ExistingRoles.Add(role1);
            ExistingRoles.Add(role2);
            ExistingRoles.Add(role3);
            ExistingRoles.Add(role4);
            return(new List <Role> {
                role1, role2, role3, role4
            });
        }
        private void SetupTestData()
        {
            var adminGroup = new Group
            {
                Id   = @"Fabric\Health Catalyst Admin",
                Name = @"Fabric\Health Catalyst Admin"
            };

            var contributorGroup = new Group
            {
                Id   = @"Fabric\Health Catalyst Contributor",
                Name = @"Fabric\Health Catalyst Contributor"
            };

            var customGroup = new Group
            {
                Id   = "Custom Group",
                Name = "Custom Group"
            };

            _existingGroups = new List <Group>
            {
                adminGroup,
                contributorGroup,
                customGroup
            };

            _existingUsers = new List <User>
            {
                new User("user123", "Windows")
                {
                    Groups = new List <string>
                    {
                        customGroup.Name
                    }
                }
            };

            var contributorRole = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = "app",
                SecurableItem = "patientsafety",
                Name          = "contributor"
            };

            var customGroupRole = new Role
            {
                Id            = Guid.NewGuid(),
                Grain         = "app",
                SecurableItem = "patientsafety",
                Name          = "custom"
            };

            ExistingRoles.Add(contributorRole);
            ExistingRoles.Add(customGroupRole);

            var adminRole = ExistingRoles.First(r => r.Grain == "app" &&
                                                r.SecurableItem == "patientsafety" &&
                                                r.Name == "admin");

            adminGroup.Roles.Add(adminRole);
            adminGroup.Roles.Add(contributorRole);
            contributorGroup.Roles.Add(contributorRole);
            customGroup.Roles.Add(customGroupRole);

            adminRole.Groups.Add(adminGroup.Identifier);
            contributorRole.Groups.Add(adminGroup.Identifier);
            contributorRole.Groups.Add(contributorGroup.Identifier);
            customGroupRole.Groups.Add(customGroup.Identifier);

            var manageUsersPermission =
                ExistingPermissions.First(p => p.Grain == adminRole.Grain &&
                                          p.SecurableItem == adminRole.SecurableItem &&
                                          p.Name == "manageusers");

            var updatePatientPermission =
                ExistingPermissions.First(p => p.Grain == adminRole.Grain &&
                                          p.SecurableItem == adminRole.SecurableItem &&
                                          p.Name == "updatepatient");

            ExistingPermissions.Add(new Permission
            {
                Id            = Guid.NewGuid(),
                Grain         = "app",
                SecurableItem = "patientsafety",
                Name          = "custom"
            });

            var customPermission =
                ExistingPermissions.First(p => p.Grain == "app" &&
                                          p.SecurableItem == "patientsafety" &&
                                          p.Name == "custom");

            adminRole.Permissions.Add(manageUsersPermission);
            contributorRole.Permissions.Add(updatePatientPermission);
            customGroupRole.Permissions.Add(customPermission);
        }