Tests/New-RAInvitation.Tests.ps1
Describe "New-RAInvitation" { BeforeAll { #region Importing the module $dir = Split-Path (Split-Path $PSScriptRoot -Parent) -Leaf Import-Module -Name $dir #endregion #region Importing configuration file $moduleDir = Split-Path -Path $PSScriptRoot -Parent $configFile = Get-Content -Path "$(Split-Path -Path $moduleDir -Parent)\config.json" | ConvertFrom-Json $configPath = "$(Split-Path -Path $moduleDir -Parent)\$($configFile.PrivateKey)" #endregion } Context "Verifying parameters" { $mandatoryParameter = @( @{ Parameter = "Authn" } @{ Parameter = "InvitationRequest" } ) It "<Parameter> is mandatory" -TestCases $mandatoryParameter { param($Parameter) $functionMeta = Get-Command -Name New-RAInvitation $functionMeta.Parameters[$Parameter].Attributes.Mandatory | Should -BeTrue } } Context "Verify the output" { BeforeEach { $auth = New-RAToken -Path $configPath -Datacenter $configFile.Datacenter -TenantID $configFile.TenantID -AsSecureString } It "Invite new Alero vendor" { $request = @{ "accessEndDate" = ([System.DateTimeOffset](Get-Date).AddDays(10)).ToUnixTimeMilliseconds() "accessStartDate" = ([System.DateTimeOffset](Get-Date)).ToUnixTimeMilliseconds() "applications" = @( @{ "applicationId" = $configFile.ApplicationID "siteId" = $configFile.SiteID } ) "canInvite" = $true "companyName" = "Test Inc." "emailAddress" = "test@attempt.here" "firstName" = "Jason" "initialStatus" = "Activated" "invitedVendorsInitialStatus" = "Activated" "lastName" = "Smith" "maxNumOfInvitedVendors" = 10 "phoneAndEmailAuth" = $false "phoneNumber" = "+972058655541" "provisioningGroups" = @( $configFile.GroupID ) "provisioningType" = "ProvisionedByAlero" "provisioningUsername" = "Jason.Smith@Test-Inc.alero" } $vendor = New-RAInvitation -Authn $auth -InvitationRequest $request $vendor | Should -Not -BeNullOrEmpty $vendor | Should -BeOfType [string] $vendor.Length | Should -BeExactly 32 } It "Invite new Alero user" { $request = @{ "initialStatus" = "Deactivated" "invitationExpirationTime" = ([System.DateTimeOffset](Get-Date).AddDays(10)).ToUnixTimeMilliseconds() "usersToInvite" = @( @{ "emailAddress" = "test@email.mail" "name" = "Jason Watts" } ) } $user = New-RAInvitation -Authn $auth -InvitationRequest $request -UserInvitation $user | Should -Not -BeNullOrEmpty $user | Should -BeOfType [string] $user.Length | Should -BeExactly 32 } } } |