-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathnbx.tests.ps1
111 lines (103 loc) · 4.17 KB
/
nbx.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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
Describe 'Set wrapper functions' {
$token = ConvertTo-SecureString -String "APITOKEN" -AsPlainText -Force
Connect-nbAPI -APIurl 'http://example.com' -Token $token
. $PSScriptRoot\ResourceMap.ps1
$testCases = $ResourceMap.Keys |
ForEach-Object {
@{
function = "Set-nb$_"
resourcename = ($ResourceMap[$_])
}
}
it "should map <function> to <resourcename>" -TestCases $testCases {
param(
$function,
$resourceName
)
#Mock -CommandName Invoke-nbApi -MockWith {} -ModuleName powerbox
$filter = [scriptblock]::Create("`$Resource -eq '$resourceName'")
Mock -CommandName Set-NbObject -MockWith {} -ModuleName powerbox -Verifiable -ParameterFilter $filter
{&$function -Id 0 -object [pscustomobject]@{name='stuff'}} | should -Not -Throw
Assert-VerifiableMock
}
}
Describe 'New wrapper functions' {
$token = ConvertTo-SecureString -String "APITOKEN" -AsPlainText -Force
Connect-nbAPI -APIurl 'http://example.com' -Token $token
. $PSScriptRoot\ResourceMap.ps1
$testCases = $ResourceMap.Keys |
ForEach-Object {
@{
function = "New-nb$_"
resourcename = ($ResourceMap[$_])
}
}
it "should map <function> to <resourcename>" -TestCases $testCases {
param(
$function,
$resourceName
)
Mock -CommandName Invoke-nbApi -MockWith {} -ModuleName powerbox
$filter = [scriptblock]::Create("`$Resource -eq '$resourceName'")
Mock -CommandName New-NbObject -MockWith {} -ModuleName powerbox -Verifiable -ParameterFilter $filter
{&$function -object [pscustomobject]@{name='stuff'}} | should -Not -Throw
Assert-VerifiableMock
}
}
Describe 'Get wrapper functions' {
$token = ConvertTo-SecureString -String "APITOKEN" -AsPlainText -Force
Connect-nbAPI -APIurl 'http://example.com' -Token $token
. $PSScriptRoot\ResourceMap.ps1
$testCases = $ResourceMap.Keys |
ForEach-Object {
@{
function = "Get-nb$_"
resourcename = ($ResourceMap[$_])
}
}
it "should map <function> to <resourcename>" -TestCases $testCases {
param(
$function,
$resourceName
)
Mock -CommandName Invoke-nbApi -MockWith {} -ModuleName powerbox
$filter = [scriptblock]::Create("`$Resource -eq '$resourceName'")
Mock -CommandName Get-NbObject -MockWith {} -ModuleName powerbox -Verifiable -ParameterFilter $filter
{&$function} | should -Not -Throw
Assert-VerifiableMock
}
it "should map <function> -id 0 to <resourcename>/0" -TestCases $testCases {
param(
$function,
$resourceName
)
Mock -CommandName Invoke-nbApi -MockWith {} -ModuleName powerbox
$filter = [scriptblock]::Create("`$Resource -eq '$resourceName/0'")
Mock -CommandName Get-NbObject -MockWith {} -ModuleName powerbox -Verifiable -ParameterFilter $filter
{&$function -id 0} | should -Not -Throw
Assert-VerifiableMock
}
}
Describe 'Remove wrapper functions' {
$token = ConvertTo-SecureString -String "APITOKEN" -AsPlainText -Force
Connect-nbAPI -APIurl 'http://example.com' -Token $token
. $PSScriptRoot\ResourceMap.ps1
$testCases = $ResourceMap.Keys |
ForEach-Object {
@{
function = "Remove-nb$_"
resourcename = ($ResourceMap[$_])
}
}
it "should map <function> to <resourcename>" -TestCases $testCases {
param(
$function,
$resourceName
)
Mock -CommandName Invoke-nbApi -MockWith {} -ModuleName powerbox
$filter = [scriptblock]::Create("`$Resource -eq '$resourceName' -and `$Id -eq '$id'")
Mock -CommandName Remove-NbObject -MockWith {} -ModuleName powerbox -Verifiable -ParameterFilter $filter
{&$function -id 0} | should -Not -Throw
Assert-VerifiableMock
}
}