forked from JeffHarkavy/SafeguardCmdletTesting
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcmdlet-tests-groups.ps1
126 lines (118 loc) · 5.39 KB
/
cmdlet-tests-groups.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
try {
Get-Command "writeCallHeader" -ErrorAction Stop > $null
} catch {
write-host "Not meant to be run as a standalone script" -ForegroundColor Red
exit
}
$TestBlockName ="Running Groups Tests"
$blockInfo = testBlockHeader $TestBlockName 8
# ===== Covered Commands =====
# Add-SafeguardUserGroupMember
# Edit-SafeguardUserGroup
# Get-SafeguardAccountGroup
# Get-SafeguardAssetGroup
# Get-SafeguardUserGroup
# Get-SafeguardUserGroupMember
# New-SafeguardAccountGroup
# New-SafeguardAssetGroup
# New-SafeguardUserGroup
# Remove-SafeguardAssetGroup
# Remove-SafeguardAccountGroup
# Remove-SafeguardUserGroup
# Remove-SafeguardUserGroupMember
#
# n.b. - account/asset group member tests in separate file
#
try {
$groupname = $DATA.userGroupName
try {
$userGroup = (Get-SafeguardUserGroup -GroupToGet "$groupname")[0]
infoResult "Get-SafeguardUserGroup" "$groupname already exists"
}
catch {
if ($_.Exception.Message -match "unable to find") {
$userGroup = New-SafeguardUserGroup -Name "$groupname"
goodResult "New-SafeguardUserGroup" "$($userGroup.Name) successfully added"
}
else {
badResult "Get-SafeguardUserGroup" "Unexpected error fetching $groupname" $_
throw $_.Exception
}
}
$userGroup = Edit-SafeguardUserGroup -GroupToEdit "$groupname" -Description "Description for $groupname"
goodResult "Edit-SafeguardUserGroup" "Successfully edited $($userGroup.Name) Description '$($userGroup.Description)'"
$groupname = $DATA.assetGroupName
try {
$assetGroup = (Get-SafeguardAssetGroup -GroupToGet "$groupname")[0]
infoResult "Get-SafeguardAssetGroup" "$groupname already exists"
}
catch {
if ($_.Exception.Message -match "unable to find") {
$assetGroup = New-SafeguardAssetGroup -Name "$groupname" -Description "Description for $groupname"
goodResult "New-SafeguardAssetGroup" "$($assetGroup.Name) successfully added"
}
else {
badResult "Get-SafeguardAssetGroup" "Unexpected error fetching $groupname" $_
throw $_.Exception
}
}
$groupname = $DATA.accountGroupName
try {
$accountGroup = (Get-SafeguardAccountGroup -GroupToGet "$groupname")[0]
infoResult "Get-SafeguardAccountGroup" "$groupname already exists"
}
catch {
if ($_.Exception.Message -match "unable to find") {
$accountGroup = New-SafeguardAccountGroup -Name "$groupname" -Description "Description for $groupname"
goodResult "New-SafeguardAccountGroup" "$($accountGroup.Name) successfully added"
}
else {
badResult "Get-SafeguardAccountGroup" "Unexpected error fetching $groupname" $_
throw $_.Exception
}
}
try {
try {
New-SafeguardUser -NewUserName $DATA.userUsername -FirstName "Safeguard-ps" -LastName "User" -NoPassword -Provider -1 > $null
$removeNewGroupUser = $true
} catch {
infoResult "New-SafeguardUser" "User $($DATA.userUsername) already exists for user group testing"
}
Add-SafeguardUserGroupMember -Group $userGroup.Name -UserList $DATA.userUsername > $null
$groupMembers = (Get-SafeguardUserGroupMember -Group $userGroup.Name).Name
if ($DATA.userUsername -in $groupMembers) {
goodResult "Add-SafeguardUserGroupMember" "$($DATA.userUsername) successfully added to $($userGroup.Name)"
}
else {
badResult "Add-SafeguardUserGroupMember" "$($DATA.userUsername) NOT found in $($userGroup.Name)"
}
Remove-SafeguardUserGroupMember -Group $userGroup.Name -UserList $DATA.userUsername > $null
$groupMembers = (Get-SafeguardUserGroupMember -Group $userGroup.Name).Name
if ($null -eq $groupMembers -or -not $DATA.userUsername -in $groupMembers) {
goodResult "Remove-SafeguardUserGroupMember" "$($DATA.userUsername) successfully removed from $($userGroup.Name)"
}
else {
badResult "Remove-SafeguardUserGroupMember" "$($DATA.userUsername) NOT found in $($userGroup.Name)"
}
Edit-SafeguardUserGroup -GroupToEdit $userGroup.Name -UserList $DATA.userUsername -Operation add > $null
$groupMembers = (Get-SafeguardUserGroupMember -Group $userGroup.Name).Name
if ($DATA.userUsername -in $groupMembers) {
goodResult "Edit-SafeguardUserGroup" "$($DATA.userUsername) successfully edited to add to $($userGroup.Name)"
}
else {
badResult "Edit-SafeguardUserGroup" "$($DATA.userUsername) NOT edited to add to $($userGroup.Name)"
}
Remove-SafeguardUserGroup -GroupToDelete "$($DATA.userGroupName)" > $null
goodResult "Remove-SafeguardUserGroup" "Successfully removed $($DATA.userGroupName)"
} catch {
badResult "general" "Error adding $($DATA.userUserName) to group $($userGroup.Name)" $_
}
} catch {
badResult "Groups general" "Unexpected error in Groups tests" $_
} finally {
try { Remove-SafeguardUserGroup -GroupToDelete "$($DATA.userGroupName)" > $null } catch {}
try { Remove-SafeguardAssetGroup -GroupToDelete "$($DATA.assetGroupName)" > $null } catch {}
try { Remove-SafeguardAccountGroup -GroupToDelete "$($DATA.accountGroupName)" > $null } catch {}
if ($removeNewGroupUser) { try { Remove-SafeguardUser -UserToDelete $DATA.userUsername > $null } catch {} }
}
testBlockHeader $TestBlockName $blockInfo