@@ -61,50 +61,59 @@ Describe "BOSH.SSH" {
6161 Mock Set-Service { } - ModuleName BOSH.SSH
6262 Mock Edit-DefaultOpenSSHConfig { } - ModuleName BOSH.SSH
6363
64- Mock - ModuleName BOSH.SSH - CommandName Get-WindowsCapability { }
64+ Mock - ModuleName BOSH.SSH - CommandName shouldInstallSshComponents { $False }
6565 }
6666
67- Context " when 'Get-OSVersion' returns 'windows2019' " {
67+ Context " When SSH components should be installed " {
6868 BeforeEach {
69- Mock - ModuleName BOSH.SSH - CommandName Get-OSVersion { " windows2019" }
69+ Mock - ModuleName BOSH.SSH - CommandName shouldInstallSshComponents { $True }
70+
71+ Mock - ModuleName BOSH.SSH - CommandName Get-WindowsCapability { }
72+
73+ Mock - ModuleName BOSH.SSH - CommandName Start-Sleep { } - Verifiable
74+ Mock - ModuleName BOSH.SSH - CommandName Register-ScheduledTask { } - Verifiable
75+ Mock - ModuleName BOSH.SSH - CommandName Get-ScheduledTaskInfo { }
7076 }
7177
7278 Context " When OpenSSH components are installed" {
7379 BeforeEach {
80+ $openSshClientPackageSpecifier = " OpenSSH.Client~~~~0.0.1.0"
7481 Mock - ModuleName BOSH.SSH - CommandName Get-WindowsCapability {
7582 [PSCustomObject ]@ {
7683 State = " NotPresent"
77- Name = " $Name "
84+ Name = $openSshClientPackageSpecifier
7885 }
79- }
86+ } - ParameterFilter { $Name -eq " OpenSSH.Client* " }
8087
81- Mock - ModuleName BOSH.SSH - CommandName Add-WindowsCapability { } - Verifiable
88+ $openSshServerPackageSpecifier = " OpenSSH.Server~~~~0.0.1.0"
89+ Mock - ModuleName BOSH.SSH - CommandName Get-WindowsCapability {
90+ [PSCustomObject ]@ {
91+ State = " NotPresent"
92+ Name = $openSshServerPackageSpecifier
93+ }
94+ } - ParameterFilter { $Name -eq " OpenSSH.Server*" }
8295 }
8396
8497 It " attempts to install the packages" {
8598 Install-SSHD
8699
87- Should - Invoke - ModuleName BOSH.SSH - CommandName Add-WindowsCapability - Times 1 - ParameterFilter {
88- $Name -like " OpenSSH.Client*"
100+ Should - Invoke - ModuleName BOSH.SSH - CommandName Start-Sleep - Times 2
101+
102+ Should - Invoke - ModuleName BOSH.SSH - CommandName Register-ScheduledTask - Times 1 - ParameterFilter {
103+ $TaskName -like " Install-$openSshClientPackageSpecifier "
89104 }
90- Should - Invoke - ModuleName BOSH.SSH - CommandName Add-WindowsCapability - Times 1 - ParameterFilter {
91- $Name -like " OpenSSH.Server*"
105+
106+ Should - Invoke - ModuleName BOSH.SSH - CommandName Register-ScheduledTask - Times 1 - ParameterFilter {
107+ $TaskName -like " Install-$openSshServerPackageSpecifier "
92108 }
93109 }
94110 }
95111
96112 Context " When OpenSSH components are NOT installed" {
97- BeforeEach {
98- Mock - ModuleName BOSH.SSH - CommandName Get-WindowsCapability {
99- [PSCustomObject ]@ { State = " NOT-NotPresent" }
100- }
101- Mock - ModuleName BOSH.SSH - CommandName Add-WindowsCapability { } - Verifiable
102- }
103-
104113 It " does not attempt to install the packages" {
105114 Install-SSHD
106115
107- Should -Not - Invoke - ModuleName BOSH.SSH - CommandName Add-WindowsCapability
116+ Should -Not - Invoke - ModuleName BOSH.SSH - CommandName Register-ScheduledTask
108117 }
109118 }
110119 }
0 commit comments