-
Notifications
You must be signed in to change notification settings - Fork 393
/
Copy pathUseProcessBlockForPipelineCommand.tests.ps1
37 lines (33 loc) · 1.97 KB
/
UseProcessBlockForPipelineCommand.tests.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Describe "UseProcessBlockForPipelineCommand" {
BeforeAll {
$RuleName = 'PSUseProcessBlockForPipelineCommand'
$NoProcessBlock = 'function BadFunc1 { [CmdletBinding()] param ([Parameter(ValueFromPipeline)]$Param1) }'
$NoProcessBlockByPropertyName = 'function $BadFunc2 { [CmdletBinding()] param ([Parameter(ValueFromPipelineByPropertyName)]$Param1) }'
$HasProcessBlock = 'function GoodFunc1 { [CmdletBinding()] param ([Parameter(ValueFromPipeline)]$Param1) process { } }'
$HasProcessBlockByPropertyName = 'function GoodFunc2 { [CmdletBinding()] param ([Parameter(ValueFromPipelineByPropertyName)]$Param1) process { } }'
$NoAttribute = 'function GoodFunc3 { [CmdletBinding()] param ([Parameter()]$Param1) }'
$HasTypeDeclaration = 'function GoodFunc3 { [CmdletBinding()] param ([Parameter()][string]$Param1) }'
}
Context "When there are violations" {
$Cases = @(
@{ScriptDefinition = $NoProcessBlock; Name = "NoProcessBlock"}
@{ScriptDefinition = $NoProcessBlockByPropertyName; Name = "NoProcessBlockByPropertyName"}
)
It "has 1 violation for function <Name>" {
param ($ScriptDefinition)
Invoke-ScriptAnalyzer -ScriptDefinition $ScriptDefinition -IncludeRule $RuleName | Should -Not -BeNullOrEmpty
} -TestCases $Cases
}
Context "When there are no violations" {
$Cases = @(
@{ScriptDefinition = $HasProcessBlock; Name = "HasProcessBlock" }
@{ScriptDefinition = $HasProcessBlockByPropertyName; Name = "HasProcessBlockByPropertyName" }
@{ScriptDefinition = $NoAttribute; Name = "NoAttribute" }
@{ScriptDefinition = $HasTypeDeclaration; Name = "HasTypeDeclaration"}
)
It "has no violations for function <Name>" {
param ($ScriptDefinition)
Invoke-ScriptAnalyzer -ScriptDefinition $ScriptDefinition -IncludeRule $RuleName | Should -BeNullOrEmpty
} -TestCases $Cases
}
}