From 104fe641945fc7fdc77f60fc293a57db416a4eee Mon Sep 17 00:00:00 2001 From: "Steve Lee (POWERSHELL)" Date: Thu, 7 Sep 2017 17:03:16 -0700 Subject: [PATCH 1/3] [feature] Added Set-Service and New-Service tests --- .../Set-Service.Tests.ps1 | 163 ++++++++++++++++++ 1 file changed, 163 insertions(+) create mode 100644 test/powershell/Modules/Microsoft.PowerShell.Management/Set-Service.Tests.ps1 diff --git a/test/powershell/Modules/Microsoft.PowerShell.Management/Set-Service.Tests.ps1 b/test/powershell/Modules/Microsoft.PowerShell.Management/Set-Service.Tests.ps1 new file mode 100644 index 00000000000..f505bb4b6d7 --- /dev/null +++ b/test/powershell/Modules/Microsoft.PowerShell.Management/Set-Service.Tests.ps1 @@ -0,0 +1,163 @@ +Describe "Set/New-Service cmdlet tests" -Tags "Feature","RequireAdminOnWindows" { + BeforeAll { + $originalDefaultParameterValues = $PSDefaultParameterValues.Clone() + if ( -not $IsWindows ) { + $PSDefaultParameterValues["it:skip"] = $true + } + } + AfterAll { + $global:PSDefaultParameterValues = $originalDefaultParameterValues + } + + It "SetServiceCommand can be used as API for '' with ''" -TestCases @( + @{parameter="ComputerName"; value="foo"}, + @{parameter="Name" ; value="bar"}, + @{parameter="DisplayName" ; value="hello"}, + @{parameter="Description" ; value="hello world"}, + @{parameter="StartupType" ; value="Automatic"}, + @{parameter="StartupType" ; value="Boot"}, + @{parameter="StartupType" ; value="Disabled"}, + @{parameter="StartupType" ; value="Manual"}, + @{parameter="StartupType" ; value="System"}, + @{parameter="Status" ; value="Running"}, + @{parameter="Status" ; value="Stopped"}, + @{parameter="Status" ; value="Paused"}, + @{parameter="InputObject" ; value=(Get-Service | Select-Object -First 1)}, + # cmdlet inherits this property, but it's not exposed as parameter so it should be $null + @{parameter="Include" ; value="foo","bar" ; expectedNull=$true}, + # cmdlet inherits this property, but it's not exposed as parameter so it should be $null + @{parameter="Exclude" ; value="foo","bar" ; expectedNull=$true} + ) { + param($parameter, $value, $expectedNull) + + $setServiceCommand = [Microsoft.PowerShell.Commands.SetServiceCommand]::new() + $setServiceCommand.$parameter = $value + if ($expectedNull -eq $true) { + $setServiceCommand.$parameter | Should BeNullOrEmpty + } else { + $setServiceCommand.$parameter | Should Be $value + } + } + + It "Set-Service parameter validation for invalid values: