Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d2cc242

Browse files
committedMay 11, 2025·
Fix failing tests.
1 parent 722bda4 commit d2cc242

14 files changed

+185
-174
lines changed
 

‎module/Entra/Microsoft.Entra/Users/New-EntraUser.ps1

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ function New-EntraUser {
151151
if ($null -ne $PSBoundParameters["PreferredLanguage"]) {
152152
$params["PreferredLanguage"] = $PSBoundParameters["PreferredLanguage"]
153153
}
154-
if ($null -ne $PSBoundParameters["UserState"]) {
155-
$params["ExternalUserState"] = $PSBoundParameters["UserState"]
154+
if ($null -ne $PSBoundParameters["ExternalUserState"]) {
155+
$params["ExternalUserState"] = $PSBoundParameters["ExternalUserState"]
156156
}
157157
if ($null -ne $PSBoundParameters["ImmutableId"]) {
158158
$params["OnPremisesImmutableId"] = $PSBoundParameters["ImmutableId"]
@@ -166,8 +166,8 @@ function New-EntraUser {
166166
if ($null -ne $PSBoundParameters["UsageLocation"]) {
167167
$params["UsageLocation"] = $PSBoundParameters["UsageLocation"]
168168
}
169-
if ($null -ne $PSBoundParameters["UserStateChangedOn"]) {
170-
$params["ExternalUserStateChangeDateTime"] = $PSBoundParameters["UserStateChangedOn"]
169+
if ($null -ne $PSBoundParameters["ExternalUserStateChangeDateTime"]) {
170+
$params["ExternalUserStateChangeDateTime"] = $PSBoundParameters["ExternalUserStateChangeDateTime"]
171171
}
172172
if ($null -ne $PSBoundParameters["AccountEnabled"]) {
173173
$params["AccountEnabled"] = $PSBoundParameters["AccountEnabled"]

‎module/Entra/Microsoft.Entra/Users/Set-EntraUser.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function Set-EntraUser {
77
[CmdletBinding(DefaultParameterSetName = 'Default')]
88
param (
99
[Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "The unique identifier for the user, such as their object ID or user principal name.")]
10-
[Alias('ObjectId', 'UPN', 'Identity', 'UserPrincipalName')]
10+
[Alias('ObjectId', 'UPN', 'Identity', 'Id')]
1111
[ValidateNotNullOrEmpty()]
1212
[ValidateScript({
1313
if ($_ -match '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' -or

‎module/EntraBeta/Microsoft.Entra.Beta/Users/Set-EntraBetaUser.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function Set-EntraBetaUser {
77
[CmdletBinding(DefaultParameterSetName = 'Default')]
88
param (
99
[Parameter(Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true, HelpMessage = "The unique identifier for the user, such as their object ID or user principal name.")]
10-
[Alias('ObjectId', 'UPN', 'Identity', 'UserPrincipalName')]
10+
[Alias('ObjectId', 'UPN', 'Identity', 'Id')]
1111
[ValidateNotNullOrEmpty()]
1212
[ValidateScript({
1313
if ($_ -match '^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' -or

‎test/Entra/Users/New-EntraUser.Tests.ps1

Lines changed: 63 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -13,39 +13,45 @@ BeforeAll {
1313
#Write-Host "Mocking New-EntraUser with parameters: $($args | ConvertTo-Json -Depth 3)"
1414
return @(
1515
[PSCustomObject]@{
16-
DisplayName = "demo004"
17-
Id = "sdjfksd-2343-n21kj"
18-
UserPrincipalName = "SawyerM@contoso.com"
19-
AccountEnabled = "True"
20-
MailNickname = "demoUser"
21-
AgeGroup = "adult"
22-
Parameters = $args
23-
City = "New York"
24-
ExternalUserStateChangeDateTime = "2024-05-02"
25-
CompanyName = "ABC Inc"
26-
PreferredLanguage = "English"
27-
FacsimileTelephoneNumber = "123456789"
28-
GivenName = "John"
16+
DisplayName = "demo004"
17+
Id = "sdjfksd-2343-n21kj"
18+
UserPrincipalName = "SawyerM@contoso.com"
19+
AccountEnabled = "True"
20+
MailNickname = "demoUser"
21+
AgeGroup = "adult"
22+
Parameters = $args
23+
City = "New York"
24+
ExternalUserStateChangeDateTime = "2024-05-02"
25+
CompanyName = "ABC Inc"
26+
PreferredLanguage = "English"
27+
FaxNumber = "123456789"
28+
GivenName = "John"
2929
mobilePhone = "987654321"
30-
UsageLocation = "US"
31-
PostalCode = "10001"
32-
CreationType = "Manual"
33-
ConsentProvidedForMinor = "Yes"
34-
onPremisesImmutableId = "1234567890"
35-
Country = "USA"
36-
Department = "IT"
37-
PasswordPolicies = "Default"
38-
JobTitle = "Engineer"
39-
IsCompromised = $false
40-
ExternalUserState = "Active"
41-
UserType = "Member"
42-
OtherMails = @("alternate@email.com")
43-
PhysicalDeliveryOfficeName = "Office A"
44-
State = "NY"
45-
StreetAddress = "123 Main St"
46-
BusinessPhones = "987654321"
47-
Surname = "Doe"
48-
ShowInAddressList = $true
30+
UsageLocation = "US"
31+
PostalCode = "10001"
32+
CreationType = "Manual"
33+
ConsentProvidedForMinor = "Yes"
34+
onPremisesImmutableId = "1234567890"
35+
Country = "USA"
36+
Department = "IT"
37+
PasswordPolicies = "Default"
38+
JobTitle = "Engineer"
39+
IsCompromised = $false
40+
ExternalUserState = "Active"
41+
UserType = "Member"
42+
OtherMails = @("alternate@email.com")
43+
PhysicalDeliveryOfficeName = "Office A"
44+
State = "NY"
45+
StreetAddress = "123 Main St"
46+
BusinessPhones = "987654321"
47+
Surname = "Doe"
48+
ShowInAddressList = $true
49+
Identities = @(
50+
@{
51+
Type = "emailAddress"
52+
Value = "example1@example.com"
53+
}
54+
)
4955
}
5056
)
5157
}
@@ -69,10 +75,10 @@ Describe "New-EntraUser" {
6975
-MailNickName "demoUser" `
7076
-AgeGroup "adult" `
7177
-City "New York" `
72-
-UserStateChangedOn "2024-05-02" `
78+
-ExternalUserStateChangeDateTime "2024-05-02" `
7379
-CompanyName "ABC Inc" `
7480
-PreferredLanguage "English" `
75-
-FacsimileTelephoneNumber "123456789" `
81+
-FaxNumber "123456789" `
7682
-GivenName "John" `
7783
-Mobile "987654321" `
7884
-UsageLocation "US" `
@@ -84,14 +90,13 @@ Describe "New-EntraUser" {
8490
-Department "IT" `
8591
-PasswordPolicies "Default" `
8692
-JobTitle "Engineer" `
87-
-IsCompromised $false `
8893
-UserState "Active" `
8994
-UserType "Member" `
9095
-OtherMails @("alternate@email.com") `
9196
-PhysicalDeliveryOfficeName "Office A" `
9297
-State "NY" `
9398
-StreetAddress "123 Main St" `
94-
-TelephoneNumber "987654321" `
99+
-BusinessPhones "987654321" `
95100
-Surname "Doe" `
96101
-ShowInAddressList $true
97102

@@ -102,10 +107,10 @@ Describe "New-EntraUser" {
102107
$result.MailNickName | Should -Be "demoUser"
103108
$result.AgeGroup | Should -Be "adult"
104109
$result.City | Should -Be "New York"
105-
$result.UserStateChangedOn | Should -Be "2024-05-02"
110+
$result.ExternalUserStateChangeDateTime | Should -Be "2024-05-02"
106111
$result.CompanyName | Should -Be "ABC Inc"
107112
$result.PreferredLanguage | Should -Be "English"
108-
$result.FacsimileTelephoneNumber | Should -Be "123456789"
113+
$result.FaxNumber | Should -Be "123456789"
109114
$result.GivenName | Should -Be "John"
110115
$result.Mobile | Should -Be "987654321"
111116
$result.UsageLocation | Should -Be "US"
@@ -132,9 +137,9 @@ Describe "New-EntraUser" {
132137
$result | Should -Not -BeNullOrEmpty
133138
$userAgentHeaderValue = "PowerShell/$psVersion EntraPowershell/$entraVersion New-EntraUser"
134139
Should -Invoke -CommandName Invoke-GraphRequest -ModuleName Microsoft.Entra.Users -Times 1 -ParameterFilter {
135-
$Headers.'User-Agent' | Should -Be $userAgentHeaderValue
136-
$true
137-
}
140+
$Headers.'User-Agent' | Should -Be $userAgentHeaderValue
141+
$true
142+
}
138143
}
139144
It "Should contain MobilePhone in parameters when passed Mobile to it" {
140145
# Define Password Profile
@@ -182,10 +187,10 @@ Describe "New-EntraUser" {
182187
$result = New-EntraUser -DisplayName "demo002" -PasswordProfile $PasswordProfile `
183188
-UserPrincipalName "demo001@M365x99297270.OnMicrosoft.com" -AccountEnabled $true `
184189
-MailNickName "demo002NickName" -AgeGroup "adult" `
185-
-UserState "PendingAcceptance" `
186-
-UserStateChangedOn $userStateChangedOn `
190+
-ExternalUserState "Active" `
191+
-ExternalUserStateChangeDateTime $userStateChangedOn `
187192
-ImmutableId "djkjsajsa-e32j2-2i32" `
188-
-TelephoneNumber "1234567890"
193+
-BusinessPhones "1234567890"
189194

190195
$params = Get-Parameters -data $result.Parameters
191196

@@ -203,23 +208,24 @@ Describe "New-EntraUser" {
203208
# Disable confirmation prompts
204209
$originalDebugPreference = $DebugPreference
205210
$DebugPreference = 'Continue'
206-
# Define Password Profile
207-
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
208-
$PasswordProfile.Password = "test@1234"
211+
# Define Password Profile
212+
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
213+
$PasswordProfile.Password = "test@1234"
209214

210-
# format like "yyyy-MM-dd HH:mm:ss"
211-
$userStateChangedOn = [System.DateTime]::Parse("2015-12-08 15:15:19")
215+
# format like "yyyy-MM-dd HH:mm:ss"
216+
$userStateChangedOn = [System.DateTime]::Parse("2015-12-08 15:15:19")
212217

213218
try {
214219
# Act & Assert: Ensure the function doesn't throw an exception
215-
{ New-EntraUser -DisplayName "demo002" -PasswordProfile $PasswordProfile `
216-
-UserPrincipalName "demo001@M365x99297270.OnMicrosoft.com" -AccountEnabled $true `
217-
-MailNickName "demo002NickName" -AgeGroup "adult" `
218-
-UserState "PendingAcceptance" `
219-
-UserStateChangedOn $userStateChangedOn `
220-
-ImmutableId "djkjsajsa-e32j2-2i32" `
221-
-TelephoneNumber "1234567890" -Debug } | Should -Not -Throw
222-
} finally {
220+
{ New-EntraUser -DisplayName "demo002" -PasswordProfile $PasswordProfile `
221+
-UserPrincipalName "demo001@M365x99297270.OnMicrosoft.com" -AccountEnabled $true `
222+
-MailNickName "demo002NickName" -AgeGroup "adult" `
223+
-UserState "PendingAcceptance" `
224+
-UserStateChangedOn $userStateChangedOn `
225+
-ImmutableId "djkjsajsa-e32j2-2i32" `
226+
-BusinessPhones "1234567890" -Debug } | Should -Not -Throw
227+
}
228+
finally {
223229
# Restore original confirmation preference
224230
$DebugPreference = $originalDebugPreference
225231
}

‎test/Entra/Users/New-EntraUserAppRoleAssignment.Tests.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Describe "New-EntraUserAppRoleAssignment" {
7474
}
7575

7676
It "Should fail when parameters are Invalid values" {
77-
{ New-EntraUserAppRoleAssignment -UserId "" -PrincipalId "" } | Should -Throw "Cannot bind argument to parameter*"
77+
{ New-EntraUserAppRoleAssignment -UserId "" -PrincipalId "" } | Should -Throw "Cannot process argument transformation on parameter 'UserId'. Cannot convert value "" to type*"
7878
}
7979

8080
It "Should contain UserId in parameters" {

‎test/Entra/Users/Remove-EntraUser.Tests.ps1

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Describe "Remove-EntraUser" {
2525
Should -Invoke -CommandName Remove-MgUser -ModuleName Microsoft.Entra.Users -Times 1
2626
}
2727
It "Should fail when UserId is empty string" {
28-
{ Remove-EntraUser -UserId "" } | Should -Throw "Cannot bind argument to parameter 'UserId' because it is an empty string."
28+
{ Remove-EntraUser -UserId "" } | Should -Throw "Cannot validate argument on parameter 'UserId'. UserId must be a valid email address or GUID."
2929
}
3030
It "Should fail when UserId is empty" {
3131
{ Remove-EntraUser -UserId } | Should -Throw "Missing an argument for parameter*"
@@ -57,7 +57,8 @@ Describe "Remove-EntraUser" {
5757
try {
5858
# Act & Assert: Ensure the function doesn't throw an exception
5959
{ Remove-EntraUser -UserId "aaaaaaaa-2222-3333-4444-bbbbbbbbbbbb" -Debug } | Should -Not -Throw
60-
} finally {
60+
}
61+
finally {
6162
# Restore original confirmation preference
6263
$DebugPreference = $originalDebugPreference
6364
}

‎test/Entra/Users/Remove-EntraUserAppRoleAssignment.Tests.ps1

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,15 @@ Describe "Remove-EntraUserAppRoleAssignment" {
2020
}
2121

2222
It "Should fail when UserId is invalid" {
23-
{ Remove-EntraUserAppRoleAssignment -UserId "" AppRoleAssignmentId "33dd33dd-ee44-ff55-aa66-77bb77bb77bb" } | Should -Throw "Cannot bind argument to parameter 'UserId' because it is an empty string."
23+
{ Remove-EntraUserAppRoleAssignment -UserId "" AppRoleAssignmentId "33dd33dd-ee44-ff55-aa66-77bb77bb77bb" } | Should -Throw "Cannot validate argument on parameter 'UserId'. UserId must be a valid email address or GUID."
2424
}
2525

2626
It "Should fail when UserId is empty" {
2727
{ Remove-EntraUserAppRoleAssignment -UserId -AppRoleAssignmentId "33dd33dd-ee44-ff55-aa66-77bb77bb77bb" } | Should -Throw "Missing an argument for parameter*"
2828
}
2929

3030
It "Should fail when AppRoleAssignmentId is invalid" {
31-
{ Remove-EntraUserAppRoleAssignment -UserId "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" AppRoleAssignmentId "" } | Should -Throw "A positional parameter cannot be found that accepts argument*"
31+
{ Remove-EntraUserAppRoleAssignment -UserId "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" AppRoleAssignmentId "" } | Should -Throw "Cannot process argument transformation on parameter 'AppRoleAssignmentId'. Cannot convert value *"
3232
}
3333

3434
It "Should fail when AppRoleAssignmentId is empty" {

‎test/Entra/Users/Remove-EntraUserManager.Tests.ps1

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ Describe "Remove-EntraUserManager" {
2424
Should -Invoke -CommandName Remove-MgUserManagerByRef -ModuleName Microsoft.Entra.Users -Times 1
2525
}
2626
It "Should fail when UserId is empty string" {
27-
{ Remove-EntraUserManager -UserId "" } | Should -Throw "Cannot bind argument to parameter 'UserId' because it is an empty string."
27+
{ Remove-EntraUserManager -UserId "" } | Should -Throw "Cannot validate argument on parameter 'UserId'. UserId must be a valid email address or GUID."
2828
}
2929
It "Should fail when UserId is empty" {
3030
{ Remove-EntraUserManager -UserId } | Should -Throw "Missing an argument for parameter*"
@@ -45,7 +45,7 @@ Describe "Remove-EntraUserManager" {
4545

4646
$userAgentHeaderValue = "PowerShell/$psVersion EntraPowershell/$entraVersion Remove-EntraUserManager"
4747

48-
Should -Invoke -CommandName Remove-MgUserManagerByRef -ModuleName Microsoft.Entra.Users -Times 1 -ParameterFilter {
48+
Should -Invoke -CommandName Remove-MgUserManagerByRef -ModuleName Microsoft.Entra.Users -Times 1 -ParameterFilter {
4949
$Headers.'User-Agent' | Should -Be $userAgentHeaderValue
5050
$true
5151
}
@@ -59,7 +59,8 @@ Describe "Remove-EntraUserManager" {
5959
try {
6060
# Act & Assert: Ensure the function doesn't throw an exception
6161
{ Remove-EntraUserManager -UserId "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" -Debug } | Should -Not -Throw
62-
} finally {
62+
}
63+
finally {
6364
# Restore original confirmation preference
6465
$DebugPreference = $originalDebugPreference
6566
}

‎test/Entra/Users/Remove-EntraUserSponsor.Tests.ps1

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,35 +15,35 @@ Describe "Remove-EntraUserSponsor" {
1515
Context "Test for Remove-EntraUserSponsor" {
1616
It "Should fail when UserId is empty string value" {
1717
{ Remove-EntraUserSponsor -UserId "" -SponsorId "sponsor123" } |
18-
Should -Throw "Cannot bind argument to parameter 'UserId' because it is an empty string."
18+
Should -Throw "Cannot validate argument on parameter 'UserId'. UserId must be a valid email address or GUID."
1919
}
2020

2121
It "Should fail when UserId is empty" {
2222
{ Remove-EntraUserSponsor -UserId } |
23-
Should -Throw "Missing an argument for parameter 'UserId'. Specify a parameter of type 'System.String' and try again."
23+
Should -Throw "Missing an argument for parameter 'UserId'. Specify a parameter of type 'System.String' and try again."
2424
}
2525

2626
It "Should fail when SponsorId is empty string value" {
2727
{ Remove-EntraUserSponsor -UserId "user123" -SponsorId "" } |
28-
Should -Throw "Cannot bind argument to parameter 'SponsorId' because it is an empty string."
28+
Should -Throw "Cannot validate argument on parameter 'UserId'. UserId must be a valid email address or GUID."
2929
}
3030

3131
It "Should fail when SponsorId is empty" {
3232
{ Remove-EntraUserSponsor -UserId "user123" -SponsorId } |
33-
Should -Throw "Missing an argument for parameter 'SponsorId'. Specify a parameter of type 'System.String' and try again."
33+
Should -Throw "Missing an argument for parameter 'SponsorId'. Specify a parameter of type 'System.Guid' and try again."
3434
}
3535

3636
It "Should call Invoke-GraphRequest with correct parameters" {
37-
$userId = "00aa00aa-bb11-cc22-dd33-44ee44ee44e"
38-
$sponsorId = "10aa00aa-bb11-cc22-dd33-44ee44ee44e"
37+
$userId = "ec5813fb-346e-4a33-a014-b55ffee3662b"
38+
$sponsorId = "ec5b1c17-940b-47c3-9e8e-6c7e71b9c1ca"
3939

4040
Remove-EntraUserSponsor -UserId $userId -SponsorId $sponsorId
4141
Should -Invoke -CommandName Invoke-GraphRequest -ModuleName Microsoft.Entra.Users -Times 1 -Exactly
4242
}
4343

4444
It "Should accept DirectoryObjectId as alias for SponsorId" {
45-
$userId = "00aa00aa-bb11-cc22-dd33-44ee44ee44e"
46-
$dirObjectId = "10aa00aa-bb11-cc22-dd33-44ee44ee44e"
45+
$userId = "ec5813fb-346e-4a33-a014-b55ffee3662b"
46+
$dirObjectId = "ec5b1c17-940b-47c3-9e8e-6c7e71b9c1ca"
4747

4848
Remove-EntraUserSponsor -UserId $userId -DirectoryObjectId $dirObjectId
4949
Should -Invoke -CommandName Invoke-GraphRequest -ModuleName Microsoft.Entra.Users -Times 1 -Exactly
There was a problem loading the remainder of the diff.

0 commit comments

Comments
 (0)
Please sign in to comment.