Tests/Integration/ADAccount.tests.ps1
[CmdletBinding()] param ( [Parameter()] [string] $Server, [Parameter(Mandatory)] [PSCredential] $PSCredential ) # HACK this is the only way I can figure out how to get the cred parameters into Pester BeforeAll context. $global:Credential = $PSCredential Import-Module $PSScriptRoot\..\.. -Force -Verbose:$false Describe 'ADUser' -Tags Integration { BeforeAll { if (-not $global:Credential) { throw [InvalidOperationException]::new("Global Credential is null. Something impossible has happened.") } [Diagnostics.CodeAnalysis.SuppressMessage("UseDeclaredVarsMoreThanAssignments","", Scope="member")] $ConnectionParam = @{ Server = $Server Credential = $global:Credential } [Diagnostics.CodeAnalysis.SuppressMessage("UseDeclaredVarsMoreThanAssignments","", Scope="member")] $BuiltInUserDistinguishedNames = & "$PSScriptRoot\Shared\Get-BuiltInUserDistinguishedNames.ps1" } It 'Can Enable-ADUser and Disable-ADUser by sAMAccountName' { $testUserName = 'disableUser1' New-ADUser @ConnectionParam -Name $testUserName -Verbose:$VerbosePreference Disable-ADAccount @ConnectionParam -Identity $testUserName -Verbose:$VerbosePreference $result = Get-ADUser @ConnectionParam -Identity $testUserName -Verbose:$VerbosePreference $result.Enabled | Should -BeFalse Enable-ADAccount @ConnectionParam -Identity $testUserName -Verbose:$VerbosePreference $result = Get-ADUser @ConnectionParam -Identity $testUserName -Verbose:$VerbosePreference $result.Enabled | Should -BeTrue } AfterEach { Write-Verbose "Cleanup in $($MyInvocation.MyCommand.ScriptBlock.File | Split-Path -Leaf)." & "$PSScriptRoot\Shared\Clear-TestObjects.ps1" } } |