Implement Find Group By Group
Signed-off-by: Dimitar Milov <dmilov@vmware.com>
This commit is contained in:
@@ -348,6 +348,43 @@ namespace VMware.vSphere.SsoAdminClient
|
||||
};
|
||||
}
|
||||
|
||||
public IEnumerable<DataTypes.Group> GetGroupsInGroup(string searchString, DataTypes.Group group)
|
||||
{
|
||||
// Create Authorization Invocation Context
|
||||
var authorizedInvocationContext =
|
||||
CreateAuthorizedInvocationContext();
|
||||
|
||||
// Invoke SSO Admin FindGroupsInGroupResponse operation
|
||||
var groups = authorizedInvocationContext.
|
||||
InvokeOperation(() =>
|
||||
_ssoAdminBindingClient.FindGroupsInGroupAsync(
|
||||
new ManagedObjectReference
|
||||
{
|
||||
type = "SsoAdminPrincipalDiscoveryService",
|
||||
Value = "principalDiscoveryService"
|
||||
},
|
||||
new SsoPrincipalId
|
||||
{
|
||||
name = group.Name,
|
||||
domain = group.Domain
|
||||
},
|
||||
searchString,
|
||||
int.MaxValue)).Result.returnval;
|
||||
|
||||
if (groups != null)
|
||||
{
|
||||
foreach (var g in groups)
|
||||
{
|
||||
yield return new DataTypes.Group(this)
|
||||
{
|
||||
Name = g.id.name,
|
||||
Domain = g.id.domain,
|
||||
Description = g.details.description
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public DataTypes.Group CreateLocalGroup(string name, string description)
|
||||
{
|
||||
// Create Authorization Invocation Context
|
||||
|
||||
@@ -153,35 +153,35 @@ Describe "SsoGroup Tests" {
|
||||
Context "Add-GroupToSsoGroup" {
|
||||
It 'Should add a newly created SsoGroup to another SsoGroup' {
|
||||
# Arrange
|
||||
$groupName = 'TestGroup5'
|
||||
$groupToAdd = New-SsoGroup -Name $groupName
|
||||
$script:testGroupsToDelete += $groupToAdd
|
||||
$expectedGroup = New-SsoGroup -Name 'TestGroup5'
|
||||
$script:testGroupsToDelete += $expectedGroup
|
||||
|
||||
$targetGroup = Get-SsoGroup -Name 'Administrators' -Domain 'vsphere.local'
|
||||
|
||||
# Act
|
||||
$groupToAdd | Add-GroupToSsoGroup -TargetGroup $targetGroup
|
||||
$expectedGroup | Add-GroupToSsoGroup -TargetGroup $targetGroup
|
||||
|
||||
# Assert
|
||||
## TODO: Implement Get Group Members and verify
|
||||
$actualGroups = $targetGroup | Get-SsoGroup
|
||||
$actualGroups | Where-Object { $_.Name -eq $expectedGroup.Name} | Should -Not -Be $null
|
||||
}
|
||||
}
|
||||
|
||||
Context "Remove-GroupFromSsoGroup" {
|
||||
It 'Should remove a SsoGroup from another SsoGroup' {
|
||||
# Arrange
|
||||
$groupName = 'TestGroup6'
|
||||
$groupToRemove = New-SsoGroup -Name $groupName
|
||||
$script:testGroupsToDelete += $groupToRemove
|
||||
$expectedGroup = New-SsoGroup -Name 'TestGroup6'
|
||||
$script:testGroupsToDelete += $expectedGroup
|
||||
|
||||
$targetGroup = Get-SsoGroup -Name 'Administrators' -Domain 'vsphere.local'
|
||||
$groupToRemove | Add-GroupToSsoGroup -TargetGroup $targetGroup
|
||||
$expectedGroup | Add-GroupToSsoGroup -TargetGroup $targetGroup
|
||||
|
||||
# Act
|
||||
$groupToRemove | Remove-GroupFromSsoGroup -TargetGroup $targetGroup
|
||||
$expectedGroup | Remove-GroupFromSsoGroup -TargetGroup $targetGroup
|
||||
|
||||
# Assert
|
||||
## TODO: Implement Get Group Members and verify
|
||||
$actualGroups = $targetGroup | Get-SsoGroup
|
||||
$actualGroups | Where-Object { $_.Name -eq $expectedGroup.Name} | Should -Be $null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user