92 lines
2.8 KiB
PowerShell
92 lines
2.8 KiB
PowerShell
BeforeAll {
|
|
$script:dscModuleName = 'M365FoundationsCISReport'
|
|
|
|
Import-Module -Name $script:dscModuleName
|
|
}
|
|
|
|
AfterAll {
|
|
# Unload the module being tested so that it doesn't impact any other tests.
|
|
Get-Module -Name $script:dscModuleName -All | Remove-Module -Force
|
|
}
|
|
|
|
Describe Get-Something {
|
|
BeforeAll {
|
|
Mock -CommandName Get-PrivateFunction -MockWith {
|
|
# This return the value passed to the Get-PrivateFunction parameter $PrivateData.
|
|
$PrivateData
|
|
} -ModuleName $dscModuleName
|
|
}
|
|
|
|
Context 'When passing values using named parameters' {
|
|
It 'Should call the private function once' {
|
|
{ Get-Something -Data 'value' } | Should -Not -Throw
|
|
|
|
Should -Invoke -CommandName Get-PrivateFunction -Exactly -Times 1 -Scope It -ModuleName $dscModuleName
|
|
}
|
|
|
|
It 'Should return a single object' {
|
|
$return = Get-Something -Data 'value'
|
|
|
|
($return | Measure-Object).Count | Should -Be 1
|
|
}
|
|
|
|
It 'Should return the correct string value' {
|
|
$return = Get-Something -Data 'value'
|
|
|
|
$return | Should -Be 'value'
|
|
}
|
|
}
|
|
|
|
Context 'When passing values over the pipeline' {
|
|
It 'Should call the private function two times' {
|
|
{ 'value1', 'value2' | Get-Something } | Should -Not -Throw
|
|
|
|
Should -Invoke -CommandName Get-PrivateFunction -Exactly -Times 2 -Scope It -ModuleName $dscModuleName
|
|
}
|
|
|
|
It 'Should return an array with two items' {
|
|
$return = 'value1', 'value2' | Get-Something
|
|
|
|
$return.Count | Should -Be 2
|
|
}
|
|
|
|
It 'Should return an array with the correct string values' {
|
|
$return = 'value1', 'value2' | Get-Something
|
|
|
|
$return[0] | Should -Be 'value1'
|
|
$return[1] | Should -Be 'value2'
|
|
}
|
|
|
|
It 'Should accept values from the pipeline by property name' {
|
|
$return = 'value1', 'value2' | ForEach-Object {
|
|
[PSCustomObject]@{
|
|
Data = $_
|
|
OtherProperty = 'other'
|
|
}
|
|
} | Get-Something
|
|
|
|
$return[0] | Should -Be 'value1'
|
|
$return[1] | Should -Be 'value2'
|
|
}
|
|
}
|
|
|
|
Context 'When passing WhatIf' {
|
|
It 'Should support the parameter WhatIf' {
|
|
(Get-Command -Name 'Get-Something').Parameters.ContainsKey('WhatIf') | Should -Be $true
|
|
}
|
|
|
|
It 'Should not call the private function' {
|
|
{ Get-Something -Data 'value' -WhatIf } | Should -Not -Throw
|
|
|
|
Should -Invoke -CommandName Get-PrivateFunction -Exactly -Times 0 -Scope It -ModuleName $dscModuleName
|
|
}
|
|
|
|
It 'Should return $null' {
|
|
$return = Get-Something -Data 'value' -WhatIf
|
|
|
|
$return | Should -BeNullOrEmpty
|
|
}
|
|
}
|
|
}
|
|
|