Tests/Import-PSModules.Tests.ps1
|
[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseDeclaredVarsMoreThanAssignments", "")] param() BeforeAll { # Import the script file $sPath = ($PSScriptRoot).Replace("Tests","Public") + "\Import-PSModules.ps1" . $sPath } Describe "Import-PSModules" { Context "Module exists" { BeforeAll { $sLogFile = "TestDrive:\Test.log" $null = New-Item $sLogFile -ItemType File $arrModuleNames = @("DnsClient","NetAdapter") $sTimestamp = Get-Date -Format "yyyyMMddHHmmss" $bResult = Import-PSModules -arrModuleNames $arrModuleNames -bShowInfo $false -sTimestamp $sTimestamp -sLogFile ([ref]$sLogFile) } It "Should return true" { $bResult | Should -Be $true } It "Should return success message in the log file" { (Get-Content $sLogfile) | Should -BeLike "*Successfully loaded PowerShell module*" } AfterAll { Remove-Item $sLogFile -ErrorAction "SilentlyContinue" Remove-Variable sLogFile,arrModuleNames,sTimestamp,bResult -ErrorAction "SilentlyContinue" } } Context "Bad Module name" { BeforeAll { $sLogFile = "TestDrive:\Test.log" $null = New-Item $sLogFile -ItemType File $arrAlerts = @() $arrModuleNames = @("NoSuchModuleHereAtAll") $sTimestamp = Get-Date -Format "yyyyMMddHHmmss" $bResult = Import-PSModules -arrModuleNames $arrModuleNames -bShowInfo $false -sTimestamp $sTimestamp -sLogFile ([ref]$sLogFile) -arrAlerts ([ref]$arrAlerts) } It "Should return false" { $bResult | Should -Be $false } It "Should return success message in the log file" { (Get-Content $sLogfile) | Should -BeLike "*Failed to load PowerShell module*" } It "Should return an alert" { $arrAlerts[0].Result | Should -BeLike "*Failed to load PowerShell module*" } AfterAll { Remove-Item $sLogFile -ErrorAction "SilentlyContinue" Remove-Variable sLogFile,arrModuleNames,sTimestamp,bResult -ErrorAction "SilentlyContinue" } } } AfterAll { Remove-Item Function:\Import-PSModules } |