Use correct casing for cmdlet name and cmdlet parameter name in *.ps1 files (#12584)

This commit is contained in:
xtqqczze 2020-05-07 13:00:30 +01:00 committed by GitHub
parent 71d8876e60
commit f4382202ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
230 changed files with 1315 additions and 1315 deletions

View File

@ -538,10 +538,10 @@ Fix steps:
$cryptoTarget = "/lib64/libcrypto.so.10"
}
if ( ! (test-path "$publishPath/libssl.so.1.0.0")) {
if ( ! (Test-Path "$publishPath/libssl.so.1.0.0")) {
$null = New-Item -Force -ItemType SymbolicLink -Target $sslTarget -Path "$publishPath/libssl.so.1.0.0" -ErrorAction Stop
}
if ( ! (test-path "$publishPath/libcrypto.so.1.0.0")) {
if ( ! (Test-Path "$publishPath/libcrypto.so.1.0.0")) {
$null = New-Item -Force -ItemType SymbolicLink -Target $cryptoTarget -Path "$publishPath/libcrypto.so.1.0.0" -ErrorAction Stop
}
}
@ -888,7 +888,7 @@ function Get-PesterTag {
$alltags = @{}
$warnings = @()
get-childitem -Recurse $testbase -File | Where-Object {$_.name -match "tests.ps1"}| ForEach-Object {
Get-ChildItem -Recurse $testbase -File | Where-Object {$_.name -match "tests.ps1"}| ForEach-Object {
$fullname = $_.fullname
$tok = $err = $null
$ast = [System.Management.Automation.Language.Parser]::ParseFile($FullName, [ref]$tok,[ref]$err)
@ -1276,7 +1276,7 @@ function Start-PSPester {
break
}
$count = ($lines | measure-object).Count
$count = ($lines | Measure-Object).Count
if ($count -eq 0)
{
Start-Sleep -Seconds 1
@ -1469,7 +1469,7 @@ function Test-XUnitTestResults
throw "Cannot convert $TestResultsFile to xml : $($_.message)"
}
$failedTests = $results.assemblies.assembly.collection | Where-Object failed -gt 0
$failedTests = $results.assemblies.assembly.collection | Where-Object failed -GT 0
if(-not $failedTests)
{
@ -1521,7 +1521,7 @@ function Test-PSPesterResults
throw "Test result file '$testResultsFile' not found for $TestArea."
}
$x = [xml](Get-Content -raw $testResultsFile)
$x = [xml](Get-Content -Raw $testResultsFile)
if ([int]$x.'test-results'.failures -gt 0)
{
Write-Log -Error "TEST FAILURES"
@ -2093,7 +2093,7 @@ function script:Use-MSBuild {
# msbuild v14 and msbuild v4 behaviors are different for XAML generation
$frameworkMsBuildLocation = "${env:SystemRoot}\Microsoft.Net\Framework\v4.0.30319\msbuild"
$msbuild = get-command msbuild -ErrorAction Ignore
$msbuild = Get-Command msbuild -ErrorAction Ignore
if ($msbuild) {
# all good, nothing to do
return
@ -2873,17 +2873,17 @@ assembly
PROCESS {
#### MAIN ####
foreach ( $log in $Logfile ) {
foreach ( $logpath in (resolve-path $log).path ) {
write-progress "converting file $logpath"
foreach ( $logpath in (Resolve-Path $log).path ) {
Write-Progress "converting file $logpath"
if ( ! $logpath) { throw "Cannot resolve $Logfile" }
$x = [xml](get-content -raw -readcount 0 $logpath)
$x = [xml](Get-Content -Raw -ReadCount 0 $logpath)
if ( $x.psobject.properties['test-results'] ) {
$Logs += convert-pesterlog $x $logpath -includeempty:$includeempty
} elseif ( $x.psobject.properties['assemblies'] ) {
$Logs += convert-xunitlog $x $logpath -includeEmpty:$includeEmpty
} else {
write-error "Cannot determine log type"
Write-Error "Cannot determine log type"
}
}
}

View File

@ -8,12 +8,12 @@ Write-Host -Foreground Blue "Get installed Apache Modules like *proxy* and Sort
Get-ApacheModule | Where-Object {$_.ModuleName -like "*proxy*"} | Sort-Object ModuleName | Out-Host
#Graceful restart of Apache
Write-host -Foreground Blue "Restart Apache Server gracefully"
Write-Host -Foreground Blue "Restart Apache Server gracefully"
Restart-ApacheHTTPServer -Graceful | Out-Host
#Enumerate current virtual hosts (web sites)
Write-Host -Foreground Blue "Enumerate configured Apache Virtual Hosts"
Get-ApacheVHost |out-host
Get-ApacheVHost |Out-Host
#Add a new virtual host
Write-Host -Foreground Yellow "Create a new Apache Virtual Host"
@ -21,7 +21,7 @@ New-ApacheVHost -ServerName "mytestserver" -DocumentRoot /var/www/html/mytestser
#Enumerate new set of virtual hosts
Write-Host -Foreground Blue "Enumerate Apache Virtual Hosts Again"
Get-ApacheVHost |out-host
Get-ApacheVHost |Out-Host
#Cleanup
Write-Host -Foreground Blue "Remove demo virtual host"

View File

@ -20,10 +20,10 @@ Run-ContainerImage hello-world # Linux
cls
# List all containers that have exited
Get-Container | Where-Object State -eq "exited"
Get-Container | Where-Object State -EQ "exited"
# That found the right one, so go ahead and remove it
Get-Container | Where-Object State -eq "exited" | Remove-Container
Get-Container | Where-Object State -EQ "exited" | Remove-Container
# Now remove the container image
Remove-ContainerImage hello-world

View File

@ -11,7 +11,7 @@ Function Get-SystemDJournal {
$Result = & $sudocmd $cmd $journalctlParameters -o json --no-pager
Try
{
$JSONResult = $Result|ConvertFrom-JSON
$JSONResult = $Result|ConvertFrom-Json
$JSONResult
}
Catch

View File

@ -4,9 +4,9 @@
Import-Module $PSScriptRoot/SystemD/SystemD.psm1
#list recent journal events
Write-host -Foreground Blue "Get recent SystemD journal messages"
Write-Host -Foreground Blue "Get recent SystemD journal messages"
Get-SystemDJournal -args "-xe" |Out-Host
#Drill into SystemD unit messages
Write-host -Foreground Blue "Get recent SystemD journal messages for services and return Unit, Message"
Get-SystemDJournal -args "-xe" | Where-Object {$_._SYSTEMD_UNIT -like "*.service"} | Format-Table _SYSTEMD_UNIT, MESSAGE | Select-Object -first 10 | Out-Host
Write-Host -Foreground Blue "Get recent SystemD journal messages for services and return Unit, Message"
Get-SystemDJournal -args "-xe" | Where-Object {$_._SYSTEMD_UNIT -like "*.service"} | Format-Table _SYSTEMD_UNIT, MESSAGE | Select-Object -First 10 | Out-Host

View File

@ -10,5 +10,5 @@
# picking up the Python script from the same directory
#
& $PSScriptRoot/class1.py | ConvertFrom-JSON
& $PSScriptRoot/class1.py | ConvertFrom-Json

View File

@ -20,7 +20,7 @@ $data
@"
#!/usr/bin/python3
print('Hi!')
"@ | out-file -encoding ascii hi
"@ | Out-File -Encoding ascii hi
# Make it executable
chmod +x hi
@ -35,7 +35,7 @@ cat class1.py
./class1.py
# Capture the data as structured objects (arrays and hashtables)
$data = ./class1.py | ConvertFrom-JSON
$data = ./class1.py | ConvertFrom-Json
# look at the first element of the returned array
$data[0]

View File

@ -130,35 +130,35 @@ function Enable-WSManTrace
{
# winrm
"{04c6e16d-b99f-4a3a-9b3e-b8325bbc781e} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii
"{04c6e16d-b99f-4a3a-9b3e-b8325bbc781e} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii
# winrsmgr
"{c0a36be8-a515-4cfa-b2b6-2676366efff7} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{c0a36be8-a515-4cfa-b2b6-2676366efff7} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
# WinrsExe
"{f1cab2c0-8beb-4fa2-90e1-8f17e0acdd5d} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{f1cab2c0-8beb-4fa2-90e1-8f17e0acdd5d} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
# WinrsCmd
"{03992646-3dfe-4477-80e3-85936ace7abb} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{03992646-3dfe-4477-80e3-85936ace7abb} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
# IPMIPrv
"{651d672b-e11f-41b7-add3-c2f6a4023672} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{651d672b-e11f-41b7-add3-c2f6a4023672} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
#IpmiDrv
"{D5C6A3E9-FA9C-434e-9653-165B4FC869E4} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{D5C6A3E9-FA9C-434e-9653-165B4FC869E4} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
# WSManProvHost
"{6e1b64d7-d3be-4651-90fb-3583af89d7f1} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{6e1b64d7-d3be-4651-90fb-3583af89d7f1} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
# Event Forwarding
"{6FCDF39A-EF67-483D-A661-76D715C6B008} 0xffffffff 0xff" | out-file $script:wsmprovfile -encoding ascii -append
"{6FCDF39A-EF67-483D-A661-76D715C6B008} 0xffffffff 0xff" | Out-File $script:wsmprovfile -Encoding ascii -Append
Start-Trace -SessionName $script:wsmsession -ETS -OutputFilePath $script:wsmanlogfile -Format bincirc -MinBuffers 16 -MaxBuffers 256 -BufferSizeInKb 64 -MaxLogFileSizeInMB 256 -ProviderFilePath $script:wsmprovfile
Start-Trace -SessionName $script:wsmsession -ETS -OutputFilePath $script:wsmanlogfile -Format bincirc -MinBuffers 16 -MaxBuffers 256 -BufferSizeInKB 64 -MaxLogFileSizeInMB 256 -ProviderFilePath $script:wsmprovfile
}
function Disable-WSManTrace
{
Stop-Trace $script:wsmsession -ets
Stop-Trace $script:wsmsession -ETS
}
function Enable-PSWSManCombinedTrace
@ -177,27 +177,27 @@ function Enable-PSWSManCombinedTrace
$logfile = $PSHOME + "\\Traces\\PSTrace.etl"
}
"Microsoft-Windows-PowerShell 0 5" | out-file $provfile -encoding ascii
"Microsoft-Windows-WinRM 0 5" | out-file $provfile -encoding ascii -append
"Microsoft-Windows-PowerShell 0 5" | Out-File $provfile -Encoding ascii
"Microsoft-Windows-WinRM 0 5" | Out-File $provfile -Encoding ascii -Append
if (!(Test-Path $PSHOME\Traces))
{
New-Item -ItemType Directory -Force $PSHOME\Traces | out-null
New-Item -ItemType Directory -Force $PSHOME\Traces | Out-Null
}
if (Test-Path $logfile)
{
Remove-Item -Force $logfile | out-null
Remove-Item -Force $logfile | Out-Null
}
Start-Trace -SessionName $script:pssession -OutputFilePath $logfile -ProviderFilePath $provfile -ets
Start-Trace -SessionName $script:pssession -OutputFilePath $logfile -ProviderFilePath $provfile -ETS
remove-item $provfile -Force -ea 0
Remove-Item $provfile -Force -ea 0
}
function Disable-PSWSManCombinedTrace
{
Stop-Trace -SessionName $script:pssession -ets
Stop-Trace -SessionName $script:pssession -ETS
}
function Set-LogProperties
@ -220,7 +220,7 @@ function Set-LogProperties
$retention = $LogDetails.Retention.ToString()
$autobackup = $LogDetails.AutoBackup.ToString()
$maxLogSize = $LogDetails.MaxLogSize.ToString()
$osVersion = [Version] (Get-Ciminstance Win32_OperatingSystem).Version
$osVersion = [Version] (Get-CimInstance Win32_OperatingSystem).Version
if (($LogDetails.Type -eq "Analytic") -or ($LogDetails.Type -eq "Debug"))
{
@ -347,7 +347,7 @@ function Disable-PSTrace
}
}
}
add-type @"
Add-Type @"
using System;
namespace Microsoft.PowerShell.Diagnostics

View File

@ -215,7 +215,7 @@ function Install-PluginEndpoint {
try
{
Write-Host "`nGet-PSSessionConfiguration $pluginEndpointName" -foregroundcolor "green"
Write-Host "`nGet-PSSessionConfiguration $pluginEndpointName" -ForegroundColor "green"
Get-PSSessionConfiguration $pluginEndpointName -ErrorAction Stop
}
catch [Microsoft.PowerShell.Commands.WriteErrorException]
@ -227,6 +227,6 @@ function Install-PluginEndpoint {
Install-PluginEndpoint -Force $Force
Install-PluginEndpoint -Force $Force -VersionIndependent
Write-Host "Restarting WinRM to ensure that the plugin configuration change takes effect.`nThis is required for WinRM running on Windows SKUs prior to Windows 10." -foregroundcolor Magenta
Write-Host "Restarting WinRM to ensure that the plugin configuration change takes effect.`nThis is required for WinRM running on Windows SKUs prior to Windows 10." -ForegroundColor Magenta
Restart-Service winrm

View File

@ -23,8 +23,8 @@ Describe "SSHRemoting Basic Tests" -tags CI {
Context "New-PSSession Tests" {
AfterEach {
if ($script:session -ne $null) { Remove-PSSession -session $script:session }
if ($script:sessions -ne $null) { Remove-PSSession -session $script:sessions }
if ($script:session -ne $null) { Remove-PSSession -Session $script:session }
if ($script:sessions -ne $null) { Remove-PSSession -Session $script:sessions }
}
It "Verifies new connection with implicit current User" {

View File

@ -17,12 +17,12 @@ Describe "Verify Markdown Links" {
}
# Cleanup jobs for reliability
get-job | remove-job -force
Get-Job | Remove-Job -Force
}
AfterAll {
# Cleanup jobs to leave the process the same
get-job | remove-job -force
Get-Job | Remove-Job -Force
}
$groups = Get-ChildItem -Path "$PSScriptRoot\..\..\..\*.md" -Recurse | Where-Object {$_.DirectoryName -notlike '*node_modules*'} | Group-Object -Property directory
@ -31,7 +31,7 @@ Describe "Verify Markdown Links" {
# start all link verification in parallel
Foreach($group in $groups)
{
Write-Verbose -verbose "starting jobs for $($group.Name) ..."
Write-Verbose -Verbose "starting jobs for $($group.Name) ..."
$job = Start-ThreadJob {
param([object] $group)
foreach($file in $group.Group)
@ -46,13 +46,13 @@ Describe "Verify Markdown Links" {
$jobs.add($group.name,$job)
}
Write-Verbose -verbose "Getting results ..."
Write-Verbose -Verbose "Getting results ..."
# Get the results and verify
foreach($key in $jobs.keys)
{
$job = $jobs.$key
$results = Receive-Job -Job $job -Wait
Remove-job -job $Job
Remove-Job -Job $Job
foreach($jobResult in $results)
{
$file = $jobResult.file
@ -85,14 +85,14 @@ Describe "Verify Markdown Links" {
if($passes)
{
it "<url> should work" -TestCases $passes {
It "<url> should work" -TestCases $passes {
noop
}
}
if($trueFailures)
{
it "<url> should work" -TestCases $trueFailures {
It "<url> should work" -TestCases $trueFailures {
param($url)
# there could be multiple reasons why a failure is ok
@ -111,7 +111,7 @@ Describe "Verify Markdown Links" {
# If invoke-WebRequest can handle the URL, re-verify, with 6 retries
try
{
$null = Invoke-WebRequest -uri $url -RetryIntervalSec 10 -MaximumRetryCount 6
$null = Invoke-WebRequest -Uri $url -RetryIntervalSec 10 -MaximumRetryCount 6
}
catch [Microsoft.PowerShell.Commands.HttpResponseException]
{
@ -128,7 +128,7 @@ Describe "Verify Markdown Links" {
if($verifyFailures)
{
it "<url> should work" -TestCases $verifyFailures -Pending {
It "<url> should work" -TestCases $verifyFailures -Pending {
}
}

View File

@ -7,7 +7,7 @@ Describe "Basic remoting test with docker" -tags @("Scenario","Slow"){
$dockerimage = docker images --format "{{ .Repository }}" $imageName
if ( $dockerimage -ne $imageName ) {
$pending = $true
write-warning "Docker image '$imageName' not found, not running tests"
Write-Warning "Docker image '$imageName' not found, not running tests"
return
}
else {
@ -15,18 +15,18 @@ Describe "Basic remoting test with docker" -tags @("Scenario","Slow"){
}
# give the containers something to do, otherwise they will exit and be removed
Write-Verbose -verbose "setting up docker container PowerShell server"
Write-Verbose -Verbose "setting up docker container PowerShell server"
$server = docker run -d $imageName powershell -c Start-Sleep -Seconds $timeout
Write-Verbose -verbose "setting up docker container PowerShell client"
Write-Verbose -Verbose "setting up docker container PowerShell client"
$client = docker run -d $imageName powershell -c Start-Sleep -Seconds $timeout
# get fullpath to installed core powershell
Write-Verbose -verbose "Getting path to PowerShell"
Write-Verbose -Verbose "Getting path to PowerShell"
$powershellcorepath = docker exec $server powershell -c "(get-childitem 'c:\program files\powershell\*\pwsh.exe').fullname"
if ( ! $powershellcorepath )
{
$pending = $true
write-warning "Cannot find powershell executable, not running tests"
Write-Warning "Cannot find powershell executable, not running tests"
return
}
$powershellcoreversion = ($powershellcorepath -split "[\\/]")[-2]
@ -34,27 +34,27 @@ Describe "Basic remoting test with docker" -tags @("Scenario","Slow"){
$powershellcoreConfiguration = "powershell.${powershellcoreversion}"
# capture the hostnames of the containers which will be used by the tests
write-verbose -verbose "getting server hostname"
Write-Verbose -Verbose "getting server hostname"
$serverhostname = docker exec $server hostname
write-verbose -verbose "getting client hostname"
Write-Verbose -Verbose "getting client hostname"
$clienthostname = docker exec $client hostname
# capture the versions of full and core PowerShell
write-verbose -verbose "getting powershell full version"
Write-Verbose -Verbose "getting powershell full version"
$fullVersion = docker exec $client powershell -c "`$PSVersionTable.psversion.tostring()"
if ( ! $fullVersion )
{
$pending = $true
write-warning "Cannot determine PowerShell full version, not running tests"
Write-Warning "Cannot determine PowerShell full version, not running tests"
return
}
write-verbose -verbose "getting powershell version"
Write-Verbose -Verbose "getting powershell version"
$coreVersion = docker exec $client "$powershellcorepath" -c "`$PSVersionTable.psversion.tostring()"
if ( ! $coreVersion )
{
$pending = $true
write-warning "Cannot determine PowerShell version, not running tests"
Write-Warning "Cannot determine PowerShell version, not running tests"
return
}
}
@ -67,22 +67,22 @@ Describe "Basic remoting test with docker" -tags @("Scenario","Slow"){
}
}
It "Full powershell can get correct remote powershell version" -pending:$pending {
It "Full powershell can get correct remote powershell version" -Pending:$pending {
$result = docker exec $client powershell -c "`$ss = [security.securestring]::new(); '11aa!!AA'.ToCharArray() | ForEach-Object { `$ss.appendchar(`$_)}; `$c = [pscredential]::new('testuser',`$ss); `$ses=new-pssession $serverhostname -configurationname $powershellcoreConfiguration -auth basic -credential `$c; invoke-command -session `$ses { `$PSVersionTable.psversion.tostring() }"
$result | Should -Be $coreVersion
}
It "Full powershell can get correct remote powershell full version" -pending:$pending {
It "Full powershell can get correct remote powershell full version" -Pending:$pending {
$result = docker exec $client powershell -c "`$ss = [security.securestring]::new(); '11aa!!AA'.ToCharArray() | ForEach-Object { `$ss.appendchar(`$_)}; `$c = [pscredential]::new('testuser',`$ss); `$ses=new-pssession $serverhostname -auth basic -credential `$c; invoke-command -session `$ses { `$PSVersionTable.psversion.tostring() }"
$result | Should -Be $fullVersion
}
It "Core powershell can get correct remote powershell version" -pending:$pending {
It "Core powershell can get correct remote powershell version" -Pending:$pending {
$result = docker exec $client "$powershellcorepath" -c "`$ss = [security.securestring]::new(); '11aa!!AA'.ToCharArray() | ForEach-Object { `$ss.appendchar(`$_)}; `$c = [pscredential]::new('testuser',`$ss); `$ses=new-pssession $serverhostname -configurationname $powershellcoreConfiguration -auth basic -credential `$c; invoke-command -session `$ses { `$PSVersionTable.psversion.tostring() }"
$result | Should -Be $coreVersion
}
It "Core powershell can get correct remote powershell full version" -pending:$pending {
It "Core powershell can get correct remote powershell full version" -Pending:$pending {
$result = docker exec $client "$powershellcorepath" -c "`$ss = [security.securestring]::new(); '11aa!!AA'.ToCharArray() | ForEach-Object { `$ss.appendchar(`$_)}; `$c = [pscredential]::new('testuser',`$ss); `$ses=new-pssession $serverhostname -auth basic -credential `$c; invoke-command -session `$ses { `$PSVersionTable.psversion.tostring() }"
$result | Should -Be $fullVersion
}

View File

@ -16,7 +16,7 @@ $script:Constants = @{
#### DOCKER OPS #####
# is docker installed?
$dockerExe = get-command docker -ea silentlycontinue
$dockerExe = Get-Command docker -ea silentlycontinue
if ( $dockerExe.name -ne "docker.exe" ) {
throw "Cannot find docker, is it installed?"
}
@ -43,7 +43,7 @@ if ( $TestImage -eq $Constants.TestImageName)
#### MSI CHECKS ####
# check to see if the MSI is present
$MsiExists = test-path $Constants.MsiName
$MsiExists = Test-Path $Constants.MsiName
$msg = "{0} exists, use -Force to remove or -UseExistingMsi to use" -f $Constants.MsiName
if ( $MsiExists -and ! ($force -or $useExistingMsi))
{
@ -53,7 +53,7 @@ if ( $MsiExists -and ! ($force -or $useExistingMsi))
# remove the msi
if ( $MsiExists -and $Force -and ! $UseExistingMsi )
{
Remove-Item -force $Constants.MsiName
Remove-Item -Force $Constants.MsiName
$MsiExists = $false
}
@ -70,7 +70,7 @@ elseif ( $MsiExists -and ! $UseExistingMsi )
}
# last check before bulding the image
if ( ! (test-path $Constants.MsiName) )
if ( ! (Test-Path $Constants.MsiName) )
{
throw ("{0} does not exist, giving up" -f $Constants.MsiName)
}

View File

@ -4,14 +4,14 @@
Describe "Verify PowerShell Runs" {
BeforeAll{
$options = (Get-PSOptions)
$path = split-path -path $options.Output
$path = Split-Path -Path $options.Output
Write-Verbose "Path: '$path'" -Verbose
$rootPath = split-Path -path $path
$rootPath = Split-Path -Path $path
$mount = 'C:\powershell'
$container = 'mcr.microsoft.com/powershell:nanoserver-1803'
}
it "Verify Version " {
It "Verify Version " {
$version = docker run --rm -v "${rootPath}:${mount}" ${container} "${mount}\publish\pwsh" -NoLogo -NoProfile -Command '$PSVersionTable.PSVersion.ToString()'
$version | Should -Match '^7\.'
}

View File

@ -50,7 +50,7 @@ Describe "Configuration file locations" -tags "CI","Slow" {
}
It @ItArgs "PSReadLine history save location should be correct" {
& $powershell -noprofile { (Get-PSReadlineOption).HistorySavePath } | Should -Be $expectedReadline
& $powershell -noprofile { (Get-PSReadLineOption).HistorySavePath } | Should -Be $expectedReadline
}
# This feature (and thus test) has been disabled because of the AssemblyLoadContext scenario
@ -104,7 +104,7 @@ Describe "Configuration file locations" -tags "CI","Slow" {
It @ItArgs "PSReadLine history should respect XDG_DATA_HOME" {
$env:XDG_DATA_HOME = $TestDrive
$expected = [IO.Path]::Combine($TestDrive, "powershell", "PSReadLine", "ConsoleHost_history.txt")
& $powershell -noprofile { (Get-PSReadlineOption).HistorySavePath } | Should -Be $expected
& $powershell -noprofile { (Get-PSReadLineOption).HistorySavePath } | Should -Be $expected
}
# This feature (and thus test) has been disabled because of the AssemblyLoadContext scenario

View File

@ -351,12 +351,12 @@ export $envVarName='$guid'
# must use an explicit scope of LocalMachine to ensure the setting is written to the expected file.
# Skip the tests on Unix platforms because *-ExecutionPolicy cmdlets don't work by design.
It "Verifies PowerShell reads from the custom -settingsFile" -skip:(!$IsWindows) {
It "Verifies PowerShell reads from the custom -settingsFile" -Skip:(!$IsWindows) {
$actualValue = & $powershell -NoProfile -SettingsFile $CustomSettingsFile -Command {(Get-ExecutionPolicy -Scope LocalMachine).ToString()}
$actualValue | Should -Be $DefaultExecutionPolicy
}
It "Verifies PowerShell writes to the custom -settingsFile" -skip:(!$IsWindows) {
It "Verifies PowerShell writes to the custom -settingsFile" -Skip:(!$IsWindows) {
$expectedValue = 'AllSigned'
# Update the execution policy; this should update the settings file.
@ -371,7 +371,7 @@ export $envVarName='$guid'
$actualValue | Should -Be $expectedValue
}
It "Verify PowerShell removes a setting from the custom -settingsFile" -skip:(!$IsWindows) {
It "Verify PowerShell removes a setting from the custom -settingsFile" -Skip:(!$IsWindows) {
# Remove the LocalMachine execution policy; this should update the settings file.
& $powershell -NoProfile -SettingsFile $CustomSettingsFile -Command {Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope LocalMachine }
@ -385,8 +385,8 @@ export $envVarName='$guid'
$p = [PSCustomObject]@{X=10;Y=20}
It "xml input" {
$p | & $powershell -noprofile { $input | Foreach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } } | Should -Be 30
$p | & $powershell -noprofile -inputFormat xml { $input | Foreach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } } | Should -Be 30
$p | & $powershell -noprofile { $input | ForEach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } } | Should -Be 30
$p | & $powershell -noprofile -inputFormat xml { $input | ForEach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } } | Should -Be 30
}
It "text input" {
@ -395,8 +395,8 @@ export $envVarName='$guid'
}
It "xml output" {
& $powershell -noprofile { [PSCustomObject]@{X=10;Y=20} } | Foreach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } | Should -Be 30
& $powershell -noprofile -outputFormat xml { [PSCustomObject]@{X=10;Y=20} } | Foreach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } | Should -Be 30
& $powershell -noprofile { [PSCustomObject]@{X=10;Y=20} } | ForEach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } | Should -Be 30
& $powershell -noprofile -outputFormat xml { [PSCustomObject]@{X=10;Y=20} } | ForEach-Object {$a = 0} { $a += $_.X + $_.Y } { $a } | Should -Be 30
}
It "text output" {
@ -638,17 +638,17 @@ namespace StackTest {
$env:XDG_CONFIG_HOME = $XDG_CONFIG_HOME
}
It "Should start if Data, Config, and Cache location is not accessible" -skip:($IsWindows) {
It "Should start if Data, Config, and Cache location is not accessible" -Skip:($IsWindows) {
$env:XDG_CACHE_HOME = "/dev/cpu"
$env:XDG_DATA_HOME = "/dev/cpu"
$env:XDG_CONFIG_HOME = "/dev/cpu"
$output = & $powershell -noprofile -Command { (get-command).count }
$output = & $powershell -noprofile -Command { (Get-Command).count }
[int]$output | Should -BeGreaterThan 0
}
}
Context "HOME environment variable" {
It "Should start if HOME is not defined" -skip:($IsWindows) {
It "Should start if HOME is not defined" -Skip:($IsWindows) {
bash -c "unset HOME;$powershell -c '1+1'" | Should -BeExactly 2
}
}
@ -769,7 +769,7 @@ namespace StackTest {
Context "ApartmentState WPF tests" -Tag Slow {
It "WPF requires STA and will work" -Skip:(!$IsWindows -or [System.Management.Automation.Platform]::IsNanoServer) {
add-type -AssemblyName presentationframework
Add-Type -AssemblyName presentationframework
$xaml = [xml]@"
<Window
@ -970,12 +970,12 @@ Describe 'Pwsh startup in directories that contain wild cards' -Tag CI {
$dirnames = "[T]est","[Test","T][est","Test"
$testcases = @()
foreach ( $d in $dirnames ) {
$null = New-Item -type Directory -path "${TESTDRIVE}/$d"
$null = New-Item -type Directory -Path "${TESTDRIVE}/$d"
$testcases += @{ Dirname = $d }
}
}
It "pwsh can startup in a directory named <dirname>" -testcases $testcases {
It "pwsh can startup in a directory named <dirname>" -TestCases $testcases {
param ( $dirname )
try {
Push-Location -LiteralPath "${TESTDRIVE}/${dirname}"
@ -1013,6 +1013,6 @@ Describe 'Pwsh startup and PATH' -Tag CI {
Describe 'Console host name' -Tag CI {
It 'Name is pwsh' -Pending {
# waiting on https://github.com/dotnet/runtime/issues/33673
(Get-Process -id $PID).Name | Should -BeExactly 'pwsh'
(Get-Process -Id $PID).Name | Should -BeExactly 'pwsh'
}
}

View File

@ -204,7 +204,7 @@ $PID
$items | Should -Not -Be $null
$items.Count | Should -BeGreaterThan 2
$createdEvents = $items | where-object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents = $items | Where-Object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents.Count | Should -BeGreaterOrEqual 3
# Verify we log that we are executing a file
@ -233,7 +233,7 @@ $PID
$items | Should -Not -Be $null
$items.Count | Should -BeGreaterThan 2
$createdEvents = $items | where-object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents = $items | Where-Object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents.Count | Should -BeGreaterOrEqual 3
# Verify we log that we are executing a file
@ -353,7 +353,7 @@ $PID
$items | Should -Not -Be $null
$items.Count | Should -BeGreaterThan 2
$createdEvents = $items | where-object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents = $items | Where-Object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents.Count | Should -BeGreaterOrEqual 3
# Verify we log that we are executing a file
@ -391,7 +391,7 @@ $PID
$items | Should -Not -Be $null
$items.Count | Should -BeGreaterThan 2
$createdEvents = $items | where-object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents = $items | Where-Object {$_.EventId -eq 'ScriptBlock_Compile_Detail:ExecuteCommand.Create.Verbose'}
$createdEvents.Count | Should -BeGreaterOrEqual 3
# Verify we log that we are executing a file

View File

@ -105,8 +105,8 @@ Describe "Validate start of console host" -Tag CI {
$diffs = Compare-Object -ReferenceObject $allowedAssemblies -DifferenceObject $loadedAssemblies
if ($null -ne $diffs) {
$assembliesAllowedButNotLoaded = $diffs | Where-Object SideIndicator -eq "<=" | ForEach-Object InputObject
$assembliesLoadedButNotAllowed = $diffs | Where-Object SideIndicator -eq "=>" | ForEach-Object InputObject
$assembliesAllowedButNotLoaded = $diffs | Where-Object SideIndicator -EQ "<=" | ForEach-Object InputObject
$assembliesLoadedButNotAllowed = $diffs | Where-Object SideIndicator -EQ "=>" | ForEach-Object InputObject
if ($assembliesAllowedButNotLoaded) {
Write-Host ("Assemblies that are expected but not loaded: {0}" -f ($assembliesAllowedButNotLoaded -join ", "))

View File

@ -34,12 +34,12 @@ Describe "TabCompletion" -Tags CI {
$res.CompletionMatches[0].CompletionText | Should -BeExactly 'ToString('
}
It 'Should complete dotnet method with null conditional operator' -skip:$nullConditionalFeatureDisabled {
It 'Should complete dotnet method with null conditional operator' -Skip:$nullConditionalFeatureDisabled {
$res = TabExpansion2 -inputScript '(1)?.ToSt' -cursorColumn '(1)?.ToSt'.Length
$res.CompletionMatches[0].CompletionText | Should -BeExactly 'ToString('
}
It 'Should complete dotnet method with null conditional operator without first letter' -skip:$nullConditionalFeatureDisabled {
It 'Should complete dotnet method with null conditional operator without first letter' -Skip:$nullConditionalFeatureDisabled {
$res = TabExpansion2 -inputScript '(1)?.' -cursorColumn '(1)?.'.Length
$res.CompletionMatches[0].CompletionText | Should -BeExactly 'CompareTo('
}
@ -147,18 +147,18 @@ Describe "TabCompletion" -Tags CI {
$res.CompletionMatches.Count | Should -BeGreaterThan 0
}
It 'Should complete keyword' -skip {
It 'Should complete keyword' -Skip {
$res = TabExpansion2 -inputScript 'using nam' -cursorColumn 'using nam'.Length
$res.CompletionMatches[0].CompletionText | Should -BeExactly 'namespace'
}
It 'Should first suggest -Full and then -Functionality when using Get-Help -Fu<tab>' -skip {
It 'Should first suggest -Full and then -Functionality when using Get-Help -Fu<tab>' -Skip {
$res = TabExpansion2 -inputScript 'Get-Help -Fu' -cursorColumn 'Get-Help -Fu'.Length
$res.CompletionMatches[0].CompletionText | Should -BeExactly '-Full'
$res.CompletionMatches[1].CompletionText | Should -BeExactly '-Functionality'
}
It 'Should first suggest -Full and then -Functionality when using help -Fu<tab>' -skip {
It 'Should first suggest -Full and then -Functionality when using help -Fu<tab>' -Skip {
$res = TabExpansion2 -inputScript 'help -Fu' -cursorColumn 'help -Fu'.Length
$res.CompletionMatches[0].CompletionText | Should -BeExactly '-Full'
$res.CompletionMatches[1].CompletionText | Should -BeExactly '-Functionality'
@ -349,7 +349,7 @@ Describe "TabCompletion" -Tags CI {
}
}
$line = "$nativeCommand --f"
$res = TaBexpansion2 -inputScript $line -cursorColumn $line.Length
$res = TabExpansion2 -inputScript $line -cursorColumn $line.Length
$res.CompletionMatches | Should -HaveCount 1
$res.CompletionMatches.CompletionText | Should -BeExactly "--flag"
}
@ -365,7 +365,7 @@ Describe "TabCompletion" -Tags CI {
}
}
$line = "$nativeCommand -o"
$res = TaBexpansion2 -inputScript $line -cursorColumn $line.Length
$res = TabExpansion2 -inputScript $line -cursorColumn $line.Length
$res.CompletionMatches | Should -HaveCount 1
$res.CompletionMatches.CompletionText | Should -BeExactly "-option"
}
@ -380,8 +380,8 @@ Describe "TabCompletion" -Tags CI {
Context "Script name completion" {
BeforeAll {
setup -f 'install-powershell.ps1' -content ""
setup -f 'remove-powershell.ps1' -content ""
Setup -f 'install-powershell.ps1' -Content ""
Setup -f 'remove-powershell.ps1' -Content ""
$scriptWithWildcardCases = @(
@{
@ -415,7 +415,7 @@ Describe "TabCompletion" -Tags CI {
Pop-Location
}
it "Input <name> should successfully complete" -TestCases $scriptWithWildcardCases {
It "Input <name> should successfully complete" -TestCases $scriptWithWildcardCases {
param($command, $expectedCommand)
$res = TabExpansion2 -inputScript $command -cursorColumn $command.Length
$res.CompletionMatches.Count | Should -BeGreaterThan 0
@ -699,7 +699,7 @@ Describe "TabCompletion" -Tags CI {
## if $PSHOME contains a space tabcompletion adds ' around the path
@{ inputStr = 'cd $PSHOME\Modu'; expected = if($PSHOME.Contains(' ')) { "'$(Join-Path $PSHOME 'Modules')'" } else { Join-Path $PSHOME 'Modules' }; setup = $null }
@{ inputStr = 'cd "$PSHOME\Modu"'; expected = "`"$(Join-Path $PSHOME 'Modules')`""; setup = $null }
@{ inputStr = '$PSHOME\System.Management.Au'; expected = if($PSHOME.Contains(' ')) { "`& '$(Join-Path $PSHOME 'System.Management.Automation.dll')'" } else { Join-Path $PSHOME 'System.Management.Automation.dll'; setup = $null }}
@{ inputStr = '$PSHOME\System.Management.Au'; expected = if($PSHOME.Contains(' ')) { "`& '$(Join-Path $PSHOME 'System.Management.Automation.dll')'" } else { Join-Path $PSHOME 'System.Management.Automation.dll'; Setup = $null }}
@{ inputStr = '"$PSHOME\System.Management.Au"'; expected = "`"$(Join-Path $PSHOME 'System.Management.Automation.dll')`""; setup = $null }
@{ inputStr = '& "$PSHOME\System.Management.Au"'; expected = "`"$(Join-Path $PSHOME 'System.Management.Automation.dll')`""; setup = $null }
## tab completion AST-based tests

View File

@ -13,7 +13,7 @@ Describe "Windows Installer" -Tags "Scenario" {
)
}
It "WiX (Windows Installer XML) file contains pre-requisites link $preRequisitesLink" -skip:$skipTest {
It "WiX (Windows Installer XML) file contains pre-requisites link $preRequisitesLink" -Skip:$skipTest {
$wixProductFile = Join-Path -Path $PSScriptRoot -ChildPath "..\..\..\assets\Product.wxs"
(Get-Content $wixProductFile -Raw).Contains($preRequisitesLink) | Should -BeTrue
}
@ -21,7 +21,7 @@ Describe "Windows Installer" -Tags "Scenario" {
## Running 'Invoke-WebRequest' with WMF download URLs has been failing intermittently,
## because sometimes the URLs lead to a 'this download is no longer available' page.
## We use a retry logic here. Retry for 5 times with 1 second interval.
It "Pre-Requisistes link for '<Name>' is reachable: <url>" -TestCases $linkCheckTestCases -skip:$skipTest {
It "Pre-Requisistes link for '<Name>' is reachable: <url>" -TestCases $linkCheckTestCases -Skip:$skipTest {
param ($Url)
foreach ($i in 1..5) {

View File

@ -105,7 +105,7 @@ Describe 'Positive Parse Properties Tests' -Tags "CI" {
class C12c { [void] f() { [System.Management.Automation.Host.Rectangle]$foo = [System.Management.Automation.Host.Rectangle]::new(0, 0, 0, 0) } }
}
context "Positive ParseMethods return type Test" {
Context "Positive ParseMethods return type Test" {
# Method with return type of self
class C9 { [C9] f() { return [C9]::new() } }
$c9 = [C9]::new().f()
@ -710,7 +710,7 @@ visibleX visibleY
# Get-Member should not include hidden members by default
$member = $instance | Get-Member hiddenZ
it "Get-Member should not find hidden member w/o -Force" { $member | Should -BeNullOrEmpty }
It "Get-Member should not find hidden member w/o -Force" { $member | Should -BeNullOrEmpty }
# Get-Member should include hidden members with -Force
$member = $instance | Get-Member hiddenZ -Force
@ -742,10 +742,10 @@ Describe 'Scoped Types Test' -Tags "CI" {
{
class C1 { [string] GetContext() { return "f2 scope" } }
return (new-object C1).GetContext()
return (New-Object C1).GetContext()
}
It "New-Object at test scope" { (new-object C1).GetContext() | Should -BeExactly "Test scope" }
It "New-Object at test scope" { (New-Object C1).GetContext() | Should -BeExactly "Test scope" }
It "[C1]::new() at test scope" { [C1]::new().GetContext() | Should -BeExactly "Test scope" }
It "[C1]::new() in nested scope" { (f1) | Should -BeExactly "f1 scope" }
@ -804,7 +804,7 @@ Describe 'Type building' -Tags "CI" {
Describe 'RuntimeType created for TypeDefinitionAst' -Tags "CI" {
It 'can make cast to the right RuntimeType in two different contexts' -pending {
It 'can make cast to the right RuntimeType in two different contexts' -Pending {
$ssfe = [System.Management.Automation.Runspaces.SessionStateFunctionEntry]::new("foo", @'
class Base

View File

@ -9,7 +9,7 @@ Describe 'NestedModules' -Tags "CI" {
[string[]]$NestedContents
)
new-item -type directory -Force "TestDrive:\$Name" > $null
New-Item -type directory -Force "TestDrive:\$Name" > $null
$manifestParams = @{
Path = "TestDrive:\$Name\$Name.psd1"
}
@ -21,7 +21,7 @@ Describe 'NestedModules' -Tags "CI" {
if ($NestedContents) {
$manifestParams['NestedModules'] = 1..$NestedContents.Count | ForEach-Object {
$null = new-item -type directory TestDrive:\$Name\Nested$_
$null = New-Item -type directory TestDrive:\$Name\Nested$_
$null = Set-Content -Path "${TestDrive}\$Name\Nested$_\Nested$_.psm1" -Value $NestedContents[$_ - 1]
"Nested$_"
}
@ -29,7 +29,7 @@ Describe 'NestedModules' -Tags "CI" {
New-ModuleManifest @manifestParams
$resolvedTestDrivePath = Split-Path ((get-childitem TestDrive:\)[0].FullName)
$resolvedTestDrivePath = Split-Path ((Get-ChildItem TestDrive:\)[0].FullName)
if (-not ($env:PSModulePath -like "*$resolvedTestDrivePath*")) {
$env:PSModulePath += "$([System.IO.Path]::PathSeparator)$resolvedTestDrivePath"
}
@ -103,7 +103,7 @@ using module WithRoot
# We need to think about it: should it work or not.
# Currently, types are resolved in compile-time to the 'local' versions
# So at runtime we don't call the module versions.
It 'Can execute type creation in the module context with new()' -pending {
It 'Can execute type creation in the module context with new()' -Pending {
& (Get-Module ABC) { [C]::new().foo() } | Should -Be C
& (Get-Module NoRoot) { [A]::new().foo() } | Should -Be A2
& (Get-Module WithRoot) { [A]::new().foo() } | Should -Be A0

View File

@ -103,7 +103,7 @@ Describe 'Classes inheritance syntax' -Tags "CI" {
[void]ExitNestedPrompt(){ throw "Unsupported" }
[void]NotifyBeginApplication() { }
[void]NotifyEndApplication() { }
[string]get_Name() { return $this.myName; write-host "MyName" }
[string]get_Name() { return $this.myName; Write-Host "MyName" }
[version]get_Version() { return $this.myVersion }
[System.Globalization.CultureInfo]get_CurrentCulture() { return $this.myCurrentCulture }
[System.Globalization.CultureInfo]get_CurrentUICulture() { return $this.myCurrentUICulture }

View File

@ -14,15 +14,15 @@ Describe 'using module' -Tags "CI" {
)
if ($manifest) {
new-item -type directory -Force "${TestDrive}\$ModulePathPrefix\$Name\$Version" > $null
New-Item -type directory -Force "${TestDrive}\$ModulePathPrefix\$Name\$Version" > $null
Set-Content -Path "${TestDrive}\$ModulePathPrefix\$Name\$Version\$Name.psm1" -Value $Content
New-ModuleManifest -RootModule "$Name.psm1" -Path "${TestDrive}\$ModulePathPrefix\$Name\$Version\$Name.psd1" -ModuleVersion $Version
} else {
new-item -type directory -Force "${TestDrive}\$ModulePathPrefix\$Name" > $null
New-Item -type directory -Force "${TestDrive}\$ModulePathPrefix\$Name" > $null
Set-Content -Path "${TestDrive}\$ModulePathPrefix\$Name\$Name.psm1" -Value $Content
}
$resolvedTestDrivePath = Split-Path ((get-childitem "${TestDrive}\$ModulePathPrefix")[0].FullName)
$resolvedTestDrivePath = Split-Path ((Get-ChildItem "${TestDrive}\$ModulePathPrefix")[0].FullName)
if (-not ($env:PSModulePath -like "*$resolvedTestDrivePath*")) {
$env:PSModulePath += "$([System.IO.Path]::PathSeparator)$resolvedTestDrivePath"
}
@ -416,7 +416,7 @@ function foo()
}
'@
# resolve name to absolute path
$scriptToProcessPath = (get-childitem $scriptToProcessPath).FullName
$scriptToProcessPath = (Get-ChildItem $scriptToProcessPath).FullName
$iss = [System.Management.Automation.Runspaces.initialsessionstate]::CreateDefault()
$iss.StartupScripts.Add($scriptToProcessPath)
@ -442,7 +442,7 @@ function foo()
New-TestModule -Name FooForPaths -Content 'class Foo { [string] GetModuleName() { return "FooForPaths" } }'
$env:PSModulePath = $originalPSModulePath
new-item -type directory -Force TestDrive:\FooRelativeConsumer
New-Item -type directory -Force TestDrive:\FooRelativeConsumer
Set-Content -Path "${TestDrive}\FooRelativeConsumer\FooRelativeConsumer.ps1" -Value @'
using module ..\modules\FooForPaths
class Bar : Foo {}
@ -471,7 +471,7 @@ class Bar : Foo {}
}
It "can be accessed by absolute path" {
$resolvedTestDrivePath = Split-Path ((get-childitem TestDrive:\modules)[0].FullName)
$resolvedTestDrivePath = Split-Path ((Get-ChildItem TestDrive:\modules)[0].FullName)
$s = @"
using module $resolvedTestDrivePath\FooForPaths
[Foo]::new()
@ -483,7 +483,7 @@ using module $resolvedTestDrivePath\FooForPaths
}
It "can be accessed by absolute path with file extension" {
$resolvedTestDrivePath = Split-Path ((get-childitem TestDrive:\modules)[0].FullName)
$resolvedTestDrivePath = Split-Path ((Get-ChildItem TestDrive:\modules)[0].FullName)
$barObject = [scriptblock]::Create(@"
using module $resolvedTestDrivePath\FooForPaths\FooForPaths.psm1
[Foo]::new()

View File

@ -1,6 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "ComparisonOperator" -tag "CI" {
Describe "ComparisonOperator" -Tag "CI" {
It "Should be <result> for <lhs> <operator> <rhs>" -TestCases @(
@{lhs = 1; operator = "-lt"; rhs = 2; result = $true},
@ -84,7 +84,7 @@ Describe "ComparisonOperator" -tag "CI" {
}
}
Describe "Bytewise Operator" -tag "CI" {
Describe "Bytewise Operator" -Tag "CI" {
It "Test -bor on enum with [byte] as underlying type" {
$result = [System.Security.AccessControl.AceFlags]::ObjectInherit -bxor `

View File

@ -341,6 +341,6 @@ function Test-FullyTerminatingError
It "Recognises invalid assignment" {
{
Invoke-Expression -Command '$x = $x, $y += $z = testexe -returncode 0 && testexe -returncode 1'
} | Should -Throw -ErrorID 'InvalidLeftHandSide,Microsoft.PowerShell.Commands.InvokeExpressionCommand'
} | Should -Throw -ErrorId 'InvalidLeftHandSide,Microsoft.PowerShell.Commands.InvokeExpressionCommand'
}
}

View File

@ -40,7 +40,7 @@ Describe "Using of ternary operator" -Tags CI {
@{ Script = { $IsCoreCLR ? $false ? 'nested-if-true' : $true ? 'nested-nested-if-true' : 'nested-nested-if-false' : 'if-false' }; ExpectedValue = 'nested-nested-if-true' }
## Binary operator has higher precedence order than ternary
@{ Script = { !$IsCoreCLR ? 'Core' : 'Desktop' -eq 'Core' }; ExpectedValue = !$IsCoreCLR ? 'Core' : ('Desktop' -eq 'Core') }
@{ Script = { !$IsCoreCLR ? 'Core' : 'Desktop' -EQ 'Core' }; ExpectedValue = !$IsCoreCLR ? 'Core' : ('Desktop' -eq 'Core') }
@{ Script = { ($IsCoreCLR ? 'Core' : 'Desktop') -eq 'Core' }; ExpectedValue = $true }
)
}
@ -57,7 +57,7 @@ Describe "Using of ternary operator" -Tags CI {
}
It "Ternary expression which generates a terminating error should halt appropriately" {
{ (write-error -Message error -ErrorAction Stop) ? 1 : 2 } | Should -Throw -ErrorId Microsoft.PowerShell.Commands.WriteErrorException
{ (Write-Error -Message error -ErrorAction Stop) ? 1 : 2 } | Should -Throw -ErrorId Microsoft.PowerShell.Commands.WriteErrorException
}
It "Use ternary operator in parameter default values" {

View File

@ -108,7 +108,7 @@ function Test-Completions
{
$skip = $false
if ( $expected.CompletionText -Match "System.Management.Automation.PerformanceData|System.Management.Automation.Security" ) { $skip = $true }
It ($expected.CompletionText) -skip:$skip {
It ($expected.CompletionText) -Skip:$skip {
$expected.Found | Should -BeTrue
}
}
@ -435,7 +435,7 @@ Describe "ArgumentCompletionsAttribute tests" -Tags "CI" {
param($attributeName, $cmdletName)
$line = "$cmdletName -Alpha val"
$res = TaBexpansion2 -inputScript $line -cursorColumn $line.Length
$res = TabExpansion2 -inputScript $line -cursorColumn $line.Length
$res.CompletionMatches.Count | Should -Be 3
$res.CompletionMatches.CompletionText -join " " | Should -BeExactly "value1 value2 value3"
{ TestArgumentCompletionsAttribute -Alpha unExpectedValue } | Should -Not -Throw
@ -445,7 +445,7 @@ Describe "ArgumentCompletionsAttribute tests" -Tags "CI" {
param($attributeName, $cmdletName)
$line = "$cmdletName -Param1 val"
$res = TaBexpansion2 -inputScript $line -cursorColumn $line.Length
$res = TabExpansion2 -inputScript $line -cursorColumn $line.Length
$res.CompletionMatches.Count | Should -Be 3
$res.CompletionMatches.CompletionText -join " " | Should -BeExactly "value1 value2 value3"
{ TestArgumentCompletionsAttribute -Param1 unExpectedValue } | Should -Not -Throw

View File

@ -1,6 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
$powershellexe = (get-process -id $PID).mainmodule.filename
$powershellexe = (Get-Process -Id $PID).mainmodule.filename
Describe "Clone array" -Tags "CI" {
It "Cast in target expr" {
@ -27,7 +27,7 @@ Describe "Set fields through PSMemberInfo" -Tags "CI" {
([AStruct]@{s = "abc" }).s | Should -BeExactly "abc"
}
It "via new-object" {
(new-object AStruct -prop @{s="abc"}).s | Should -BeExactly "abc"
(New-Object AStruct -prop @{s="abc"}).s | Should -BeExactly "abc"
}
It "via PSObject" {
$x = [AStruct]::new()

View File

@ -79,23 +79,23 @@ Describe 'Argument transformation attribute on optional argument with explicit $
It "Script function takes uint64" {
Invoke-ScriptFunctionTakesUInt64 | Should -Be 42
}
it "csharp cmdlet takes object" {
It "csharp cmdlet takes object" {
Invoke-CSharpCmdletTakesObject | Should -Be "passed in null"
}
it "csharp cmdlet takes uint64" {
It "csharp cmdlet takes uint64" {
Invoke-CSharpCmdletTakesUInt64 | Should -Be 0
}
it "script function takes object when parameter is null" {
It "script function takes object when parameter is null" {
Invoke-ScriptFunctionTakesObject -Address $null | Should -Be 42
}
it "script function takes unit64 when parameter is null" {
It "script function takes unit64 when parameter is null" {
Invoke-ScriptFunctionTakesUInt64 -Address $null | Should -Be 42
}
it "script csharp cmdlet takes object when parameter is null" {
It "script csharp cmdlet takes object when parameter is null" {
Invoke-CSharpCmdletTakesObject -Address $null | Should -Be 42
}
it "script csharp cmdlet takes uint64 when parameter is null" {
It "script csharp cmdlet takes uint64 when parameter is null" {
Invoke-CSharpCmdletTakesUInt64 -Address $null | Should -Be 42
}
}

View File

@ -703,7 +703,7 @@ foo``u{2195}abc
if ( $IsLinux -or $IsMacOS ) {
# because we execute on *nix based on executable bit, and the file name doesn't matter
# so we can use the same filename as for windows, just make sure it's executable with chmod
"#!/bin/sh`necho ""Hello World""" | Out-File -encoding ASCII $shellfile
"#!/bin/sh`necho ""Hello World""" | Out-File -Encoding ASCII $shellfile
/bin/chmod +x $shellfile
}
else {

View File

@ -1,6 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
set-strictmode -v 2
Set-StrictMode -v 2
Describe 'for statement parsing' -Tags "CI" {
ShouldBeParseError 'for' MissingOpenParenthesisAfterKeyword 4 -CheckColumnNumber

View File

@ -44,7 +44,7 @@ public class ABC {}
$err[0].ErrorId | Should -Be CannotLoadAssemblyWithUriSchema
}
It "parse does not load the assembly" -pending {
It "parse does not load the assembly" -Pending {
$assemblies = [Appdomain]::CurrentDomain.GetAssemblies().GetName().Name
$assemblies -contains "UsingAssemblyTest$guid" | Should -BeFalse
@ -73,7 +73,7 @@ public class ABC {}
$e.Exception.InnerException.ErrorRecord.FullyQualifiedErrorId | Should -Be 'ErrorLoadingAssembly'
}
#>
It "Assembly loaded at runtime" -pending {
It "Assembly loaded at runtime" -Pending {
$assemblies = & "$PSHOME/pwsh" -noprofile -command @"
using assembly .\UsingAssemblyTest$guid.dll
[Appdomain]::CurrentDomain.GetAssemblies().GetName().Name

View File

@ -60,7 +60,7 @@ Describe "Using Namespace" -Tags "CI" {
New-Object CompilerGeneratedAttribute | Should -Be System.Runtime.CompilerServices.CompilerGeneratedAttribute
}
It "Attributes w/ using namespace" -pending {
It "Attributes w/ using namespace" -Pending {
function foo
{
[DebuggerStepThrough()]

View File

@ -209,7 +209,7 @@ Describe "Tests for (error, warning, etc) action preference" -Tags "CI" {
}
}
Describe 'ActionPreference.Break tests' -tag 'CI' {
Describe 'ActionPreference.Break tests' -Tag 'CI' {
BeforeAll {
Register-DebuggerHandler
@ -239,7 +239,7 @@ Describe 'ActionPreference.Break tests' -tag 'CI' {
Test-Break -ErrorAction Break
}
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'v', 'v')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'v', 'v')
}
It 'Should show 3 debugger commands were invoked' {
@ -280,7 +280,7 @@ Describe 'ActionPreference.Break tests' -tag 'CI' {
Test-Break -ErrorAction Break
}
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'v', 'v')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'v', 'v')
}
It 'Should show 3 debugger commands were invoked' {
@ -321,7 +321,7 @@ Describe 'ActionPreference.Break tests' -tag 'CI' {
Test-Break -ErrorAction Break
}
$results = @(Test-Debugger -ScriptBlock $testScript)
$results = @(Test-Debugger -Scriptblock $testScript)
}
It 'Should show 1 debugger command was invoked' {
@ -354,7 +354,7 @@ Describe 'ActionPreference.Break tests' -tag 'CI' {
Test-Break -ErrorAction Break
}
$results = @(Test-Debugger -ScriptBlock $testScript)
$results = @(Test-Debugger -Scriptblock $testScript)
}
It 'Should show 2 debugger commands were invoked' {
@ -390,7 +390,7 @@ Describe 'ActionPreference.Break tests' -tag 'CI' {
Test-Break *>$null
}
$results = @(Test-Debugger -ScriptBlock $testScript)
$results = @(Test-Debugger -Scriptblock $testScript)
}
It 'Should show 7 debugger commands were invoked' {

View File

@ -2,7 +2,7 @@
# Licensed under the MIT License.
Describe "Test restricted language check method on scriptblocks" -Tags "CI" {
BeforeAll {
set-strictmode -v 2
Set-StrictMode -v 2
function list {
$l = [System.Collections.Generic.List[String]]::new()
@ -62,12 +62,12 @@ Describe "Test restricted language check method on scriptblocks" -Tags "CI" {
}
It 'Check for restricted commands' {
{ {get-date}.CheckRestrictedLangauge($null, $null, $false) } | Should -Throw -ErrorId 'MethodNotFound'
{ {Get-Date}.CheckRestrictedLangauge($null, $null, $false) } | Should -Throw -ErrorId 'MethodNotFound'
}
It 'Check for allowed commands and variables' {
{ { get-process | where name -Match $pattern | foreach $prop }.CheckRestrictedLanguage(
{ { Get-Process | where name -Match $pattern | foreach $prop }.CheckRestrictedLanguage(
(list get-process where foreach),
(list prop pattern)
, $false) } | Should -Not -Throw

View File

@ -1,7 +1,7 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe 'Basic debugger command tests' -tag 'CI' {
Describe 'Basic debugger command tests' -Tag 'CI' {
BeforeAll {
Register-DebuggerHandler
@ -27,11 +27,11 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$bp = Set-PSBreakpoint -Command Get-Process
Get-Process -Id $PID > $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue '?','h')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue '?','h')
$result = @{
'?' = if ($results.Count -gt 0) {$results[0].Output -join [Environment]::NewLine}
'h' = if ($results.Count -gt 1) {$results[1].Output -join [Environment]::NewLine}
@ -71,7 +71,7 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$bp = Set-PSBreakpoint -Command Get-Process
Get-Process -Id $PID > $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
@ -81,13 +81,13 @@ Describe 'Basic debugger command tests' -tag 'CI' {
3: $bp = Set-PSBreakpoint -Command Get-Process
4:* Get-Process -Id $PID > $null
5: } finally {
6: Remove-PSBreakPoint -Breakpoint $bp
6: Remove-PSBreakpoint -Breakpoint $bp
7: }
8:
'@
$testScriptList = NormalizeLineEnd -string $testScriptList
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'l','list')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'l','list')
$result = @{
'l' = if ($results.Count -gt 0) {$results[0].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
'list' = if ($results.Count -gt 1) {$results[1].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
@ -120,21 +120,21 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$bp = Set-PSBreakpoint -Command Get-Process
Get-Process -Id $PID > $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
$testScriptList = @'
4:* Get-Process -Id $PID > $null
5: } finally {
6: Remove-PSBreakPoint -Breakpoint $bp
6: Remove-PSBreakpoint -Breakpoint $bp
7: }
8:
'@
$testScriptList = NormalizeLineEnd -string $testScriptList
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'l 4','list 4')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'l 4','list 4')
$result = @{
'l 4' = if ($results.Count -gt 0) {$results[0].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
'list 4' = if ($results.Count -gt 1) {$results[1].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
@ -167,7 +167,7 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$bp = Set-PSBreakpoint -Command Get-Process
Get-Process -Id $PID > $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
@ -178,7 +178,7 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$testScriptList = NormalizeLineEnd -string $testScriptList
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'l 3 2','list 3 2')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'l 3 2','list 3 2')
$result = @{
'l 3 2' = if ($results.Count -gt 0) {$results[0].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
'list 3 2' = if ($results.Count -gt 1) {$results[1].Output -replace '\s+$' -join [Environment]::NewLine -replace "^[`r`n]+|[`r`n]+$"}
@ -211,11 +211,11 @@ Describe 'Basic debugger command tests' -tag 'CI' {
$bp = Set-PSBreakpoint -Command Get-Process
Get-Process -Id $PID > $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
$results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'k','Get-PSCallStack')
$results = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'k','Get-PSCallStack')
$result = @{
'k' = if ($results.Count -gt 0) {$results[0].Output}
'Get-PSCallStack' = if ($results.Count -gt 1) {$results[1].Output}
@ -238,7 +238,7 @@ Describe 'Basic debugger command tests' -tag 'CI' {
}
Describe 'Simple debugger stepping command tests' -tag 'CI' {
Describe 'Simple debugger stepping command tests' -Tag 'CI' {
BeforeAll {
Register-DebuggerHandler
@ -258,13 +258,13 @@ Describe 'Simple debugger stepping command tests' -tag 'CI' {
'Red fish, blue fish'
} *> $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
}
$result = @{
's' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 's','s','s','s')
'stepInto' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'stepInto','stepInto','stepInto','stepInto')
's' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 's','s','s','s')
'stepInto' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'stepInto','stepInto','stepInto','stepInto')
}
}
@ -311,13 +311,13 @@ Describe 'Simple debugger stepping command tests' -tag 'CI' {
Get-Date | ConvertTo-Csv
} *> $null
} finally {
Remove-PSBreakPoint -Breakpoint $bp1,$bp2
Remove-PSBreakpoint -Breakpoint $bp1,$bp2
}
}
$result = @{
'v' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'v','v','v','v')
'stepOver' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'stepOver','stepOver','stepOver','stepOver')
'v' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'v','v','v','v')
'stepOver' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'stepOver','stepOver','stepOver','stepOver')
}
}
@ -362,13 +362,13 @@ Describe 'Simple debugger stepping command tests' -tag 'CI' {
$date = Get-Date
$date | ConvertTo-Csv
} finally {
Remove-PSBreakPoint -Breakpoint $bps
Remove-PSBreakpoint -Breakpoint $bps
}
}
$result = @{
'o' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'o','o','o')
'stepOut' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'stepOut','stepOut','stepOut')
'o' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'o','o','o')
'stepOut' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'stepOut','stepOut','stepOut')
}
}
@ -398,7 +398,7 @@ Describe 'Simple debugger stepping command tests' -tag 'CI' {
}
}
Describe 'Debugger bug fix tests' -tag 'CI' {
Describe 'Debugger bug fix tests' -Tag 'CI' {
BeforeAll {
Register-DebuggerHandler
@ -413,16 +413,16 @@ Describe 'Debugger bug fix tests' -tag 'CI' {
$testScript = {
function Test-Issue9824 {
$bp = Set-PSBreakpoint -Command Remove-PSBreakpoint
Remove-PSBreakPoint -Breakpoint $bp
Remove-PSBreakpoint -Breakpoint $bp
}
Test-Issue9824
1 + 1
}
$result = @{
's' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 's','s','s')
'v' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'v','v','v')
'o' = @(Test-Debugger -ScriptBlock $testScript -CommandQueue 'o','o')
's' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 's','s','s')
'v' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'v','v','v')
'o' = @(Test-Debugger -Scriptblock $testScript -CommandQueue 'o','o')
}
}

View File

@ -22,18 +22,18 @@ Describe "Breakpoints set on custom FileSystem provider files should work" -Tags
$scriptName = "DebuggerScriptTests-ExposeBug221362.ps1"
$scriptFullName = [io.path]::Combine($scriptPath, $scriptName)
write-output '"hello"' > $scriptFullName
Write-Output '"hello"' > $scriptFullName
#
# Create a file system provider
#
new-psdrive -name tmpTestA1 -psprovider FileSystem -root $scriptPath > $null
New-PSDrive -Name tmpTestA1 -PSProvider FileSystem -Root $scriptPath > $null
#
# Verify that the breakpoint is hit when using the provider
#
Push-Location tmpTestA1:\
$breakpoint = set-psbreakpoint .\$scriptName 1 -action { continue }
$breakpoint = Set-PSBreakpoint .\$scriptName 1 -Action { continue }
& .\$scriptName
It "Breakpoint hit count" {
@ -44,7 +44,7 @@ Describe "Breakpoints set on custom FileSystem provider files should work" -Tags
{
Pop-Location
if ($null -ne $breakpoint) { $breakpoint | remove-psbreakpoint }
if ($null -ne $breakpoint) { $breakpoint | Remove-PSBreakpoint }
if (Test-Path $scriptFullName) { Remove-Item $scriptFullName -Force }
if ($null -ne (Get-PSDrive -Name tmpTestA1 2> $null)) { Remove-PSDrive -Name tmpTestA1 -Force }
}
@ -64,7 +64,7 @@ Describe "Tests line breakpoints on dot-sourced files" -Tags "CI" {
#
$scriptFile = [io.path]::Combine([io.path]::GetTempPath(), "DebuggerScriptTests-ExposeBug245331.ps1")
write-output '
Write-Output '
function fibonacci
{
param($number)
@ -89,7 +89,7 @@ Describe "Tests line breakpoints on dot-sourced files" -Tags "CI" {
#
# Set the breakpoint and verify it is hit
#
$breakpoint = Set-PsBreakpoint $scriptFile 17 -action { continue; }
$breakpoint = Set-PSBreakpoint $scriptFile 17 -Action { continue; }
& $scriptFile
@ -99,7 +99,7 @@ Describe "Tests line breakpoints on dot-sourced files" -Tags "CI" {
}
finally
{
if ($null -ne $breakpoint) { $breakpoint | remove-psbreakpoint }
if ($null -ne $breakpoint) { $breakpoint | Remove-PSBreakpoint }
if (Test-Path $scriptFile) { Remove-Item -Path $scriptFile -Force }
}
}
@ -123,7 +123,7 @@ Describe "Function calls clear debugger cache too early" -Tags "CI" {
#
$scriptFile = [io.path]::Combine([io.path]::GetTempPath(), "DebuggerScriptTests-ExposeBug248703.ps1")
write-output '
Write-Output '
function Hello
{
write-output "hello"
@ -137,8 +137,8 @@ Describe "Function calls clear debugger cache too early" -Tags "CI" {
#
# Set the breakpoints and verify they are hit
#
$breakpoint1 = Set-PsBreakpoint $scriptFile 7 -action { continue; }
$breakpoint2 = Set-PsBreakpoint $scriptFile 9 -action { continue; }
$breakpoint1 = Set-PSBreakpoint $scriptFile 7 -Action { continue; }
$breakpoint2 = Set-PSBreakpoint $scriptFile 9 -Action { continue; }
& $scriptFile
@ -152,8 +152,8 @@ Describe "Function calls clear debugger cache too early" -Tags "CI" {
}
finally
{
if ($null -ne $breakpoint1) { $breakpoint1 | remove-psbreakpoint }
if ($null -ne $breakpoint2) { $breakpoint2 | remove-psbreakpoint }
if ($null -ne $breakpoint1) { $breakpoint1 | Remove-PSBreakpoint }
if ($null -ne $breakpoint2) { $breakpoint2 | Remove-PSBreakpoint }
if (Test-Path $scriptFile) { Remove-Item $scriptFile -Force }
}
}
@ -180,7 +180,7 @@ Describe "Line breakpoints on commands in multi-line pipelines" -Tags "CI" {
get-unique
'@
$breakpoints = Set-PsBreakpoint $script 1,2,3 -action { continue }
$breakpoints = Set-PSBreakpoint $script 1,2,3 -Action { continue }
$null = & $script
@ -198,7 +198,7 @@ Describe "Line breakpoints on commands in multi-line pipelines" -Tags "CI" {
}
finally
{
if ($null -ne $breakpoints) { $breakpoints | remove-psbreakpoint }
if ($null -ne $breakpoints) { $breakpoints | Remove-PSBreakpoint }
if (Test-Path $script)
{
Remove-Item $script -Force
@ -210,7 +210,7 @@ Describe "Line breakpoints on commands in multi-line pipelines" -Tags "CI" {
BeforeAll {
if ( $IsCoreCLR ) { return } # no COM on core
$scriptPath1 = Join-Path $TestDrive SBPShortPathBug133807.DRT.tmp.ps1
$scriptPath1 = setup -f SBPShortPathBug133807.DRT.tmp.ps1 -content '
$scriptPath1 = Setup -f SBPShortPathBug133807.DRT.tmp.ps1 -Content '
1..3 |
ForEach-Object { $_ } | sort-object |
get-unique'
@ -218,7 +218,7 @@ Describe "Line breakpoints on commands in multi-line pipelines" -Tags "CI" {
$f = $a.GetFile($scriptPath1)
$scriptPath2 = $f.ShortPath
$breakpoints = Set-PsBreakpoint $scriptPath2 1,2,3 -action { continue }
$breakpoints = Set-PSBreakpoint $scriptPath2 1,2,3 -Action { continue }
$null = & $scriptPath2
}
@ -227,15 +227,15 @@ Describe "Line breakpoints on commands in multi-line pipelines" -Tags "CI" {
if ($null -ne $breakpoints) { $breakpoints | Remove-PSBreakpoint }
}
It "Short path Breakpoint on line 1 hit count" -skip:$IsCoreCLR {
It "Short path Breakpoint on line 1 hit count" -Skip:$IsCoreCLR {
$breakpoints[0].HitCount | Should -Be 1
}
It "Short path Breakpoint on line 2 hit count" -skip:$IsCoreCLR {
It "Short path Breakpoint on line 2 hit count" -Skip:$IsCoreCLR {
$breakpoints[1].HitCount | Should -Be 3
}
It "Short path Breakpoint on line 3 hit count" -skip:$IsCoreCLR {
It "Short path Breakpoint on line 3 hit count" -Skip:$IsCoreCLR {
$breakpoints[2].HitCount | Should -Be 1
}
}
@ -251,7 +251,7 @@ Describe "Unit tests for various script breakpoints" -Tags "CI" {
if ($null -eq $path)
{
$path = split-path $MyInvocation.InvocationName
$path = Split-Path $MyInvocation.InvocationName
}
#
@ -290,7 +290,7 @@ Describe "Unit tests for various script breakpoints" -Tags "CI" {
#
# Ensure there are no breakpoints at start of test
#
Get-PsBreakpoint | Remove-PsBreakpoint
Get-PSBreakpoint | Remove-PSBreakpoint
#
# Create a couple of scripts
@ -298,54 +298,54 @@ Describe "Unit tests for various script breakpoints" -Tags "CI" {
$scriptFile1 = [io.path]::Combine([io.path]::GetTempPath(), "DebuggerScriptTests-Get-PsBreakpoint1.ps1")
$scriptFile2 = [io.path]::Combine([io.path]::GetTempPath(), "DebuggerScriptTests-Get-PsBreakpoint2.ps1")
write-output '' > $scriptFile1
write-output '' > $scriptFile2
Write-Output '' > $scriptFile1
Write-Output '' > $scriptFile2
#
# Set several breakpoints of different types
#
$line1 = Set-PsBreakpoint $scriptFile1 1
$line2 = Set-PsBreakpoint $scriptFile2 2
$line1 = Set-PSBreakpoint $scriptFile1 1
$line2 = Set-PSBreakpoint $scriptFile2 2
$cmd1 = Set-PsBreakpoint -c command1 -s $scriptFile1
$cmd2 = Set-PsBreakpoint -c command2 -s $scriptFile2
$cmd3 = Set-PsBreakpoint -c command3
$cmd1 = Set-PSBreakpoint -c command1 -s $scriptFile1
$cmd2 = Set-PSBreakpoint -c command2 -s $scriptFile2
$cmd3 = Set-PSBreakpoint -c command3
$var1 = Set-PsBreakpoint -v variable1 -s $scriptFile1
$var2 = Set-PsBreakpoint -v variable2 -s $scriptFile2
$var3 = Set-PsBreakpoint -v variable3
$var1 = Set-PSBreakpoint -v variable1 -s $scriptFile1
$var2 = Set-PSBreakpoint -v variable2 -s $scriptFile2
$var3 = Set-PSBreakpoint -v variable3
#
# The default parameter set must return all breakpoints
#
Verify { get-psbreakpoint } $line1,$line2,$cmd1,$cmd2,$cmd3,$var1,$var2,$var3
Verify { Get-PSBreakpoint } $line1,$line2,$cmd1,$cmd2,$cmd3,$var1,$var2,$var3
#
# Query by ID
#
Verify { get-psbreakpoint -id $line1.ID,$cmd1.ID,$var1.ID } $line1,$cmd1,$var1 # -id
Verify { get-psbreakpoint $line2.ID,$cmd2.ID,$var2.ID } $line2,$cmd2,$var2 # positional
Verify { $cmd3.ID,$var3.ID | get-psbreakpoint } $cmd3,$var3 # value from pipeline
Verify { Get-PSBreakpoint -Id $line1.ID,$cmd1.ID,$var1.ID } $line1,$cmd1,$var1 # -id
Verify { Get-PSBreakpoint $line2.ID,$cmd2.ID,$var2.ID } $line2,$cmd2,$var2 # positional
Verify { $cmd3.ID,$var3.ID | Get-PSBreakpoint } $cmd3,$var3 # value from pipeline
VerifyException { get-psbreakpoint -id $null } "ParameterBindingValidationException"
VerifyException { get-psbreakpoint -id $line1.ID -script $scriptFile1 } "ParameterBindingException"
VerifyException { Get-PSBreakpoint -Id $null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Id $line1.ID -Script $scriptFile1 } "ParameterBindingException"
#
# Query by Script
#
Verify { get-psbreakpoint -script $scriptFile1 } $line1,$cmd1,$var1 # -script
Verify { get-psbreakpoint $scriptFile2 } $line2,$cmd2,$var2 # positional
Verify { $scriptFile2 | get-psbreakpoint } $line2,$cmd2,$var2 # value from pipeline
Verify { Get-PSBreakpoint -Script $scriptFile1 } $line1,$cmd1,$var1 # -script
Verify { Get-PSBreakpoint $scriptFile2 } $line2,$cmd2,$var2 # positional
Verify { $scriptFile2 | Get-PSBreakpoint } $line2,$cmd2,$var2 # value from pipeline
VerifyException { get-psbreakpoint -script $null } "ParameterBindingValidationException"
VerifyException { get-psbreakpoint -script $scriptFile1,$null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Script $null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Script $scriptFile1,$null } "ParameterBindingValidationException"
# Verify that relative paths are handled correctly
$directoryName = [System.IO.Path]::GetDirectoryName($scriptFile1)
$fileName = [System.IO.Path]::GetFileName($scriptFile1)
Push-Location $directoryName
Verify { get-psbreakpoint -script $fileName } $line1,$cmd1,$var1
Verify { Get-PSBreakpoint -Script $fileName } $line1,$cmd1,$var1
Pop-Location
#
@ -354,28 +354,28 @@ Describe "Unit tests for various script breakpoints" -Tags "CI" {
$commandType = [Microsoft.PowerShell.Commands.BreakpointType]"command"
$variableType = [Microsoft.PowerShell.Commands.BreakpointType]"variable"
Verify { get-psbreakpoint -type "line" } $line1,$line2 # -type
Verify { get-psbreakpoint $commandType } $cmd1,$cmd2,$cmd3 # positional
Verify { $variableType | get-psbreakpoint } $var1,$var2,$var3 # value from pipeline
Verify { get-psbreakpoint -type "line" -script $scriptFile1 } @($line1) # -script parameter
Verify { Get-PSBreakpoint -Type "line" } $line1,$line2 # -type
Verify { Get-PSBreakpoint $commandType } $cmd1,$cmd2,$cmd3 # positional
Verify { $variableType | Get-PSBreakpoint } $var1,$var2,$var3 # value from pipeline
Verify { Get-PSBreakpoint -Type "line" -Script $scriptFile1 } @($line1) # -script parameter
VerifyException { get-psbreakpoint -type $null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Type $null } "ParameterBindingValidationException"
#
# Query by Command
#
Verify { get-psbreakpoint -command "command1","command2" } $cmd1,$cmd2 # -command
Verify { get-psbreakpoint -command "command1","command2" -script $scriptFile1 } @($cmd1) # -script parameter
Verify { Get-PSBreakpoint -Command "command1","command2" } $cmd1,$cmd2 # -command
Verify { Get-PSBreakpoint -Command "command1","command2" -Script $scriptFile1 } @($cmd1) # -script parameter
VerifyException { get-psbreakpoint -command $null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Command $null } "ParameterBindingValidationException"
#
# Query by Variable
#
Verify { get-psbreakpoint -variable "variable1","variable2" } $var1,$var2 # -command
Verify { get-psbreakpoint -variable "variable1","variable2" -script $scriptFile1 } @($var1) # -script parameter
Verify { Get-PSBreakpoint -Variable "variable1","variable2" } $var1,$var2 # -command
Verify { Get-PSBreakpoint -Variable "variable1","variable2" -Script $scriptFile1 } @($var1) # -script parameter
VerifyException { get-psbreakpoint -variable $null } "ParameterBindingValidationException"
VerifyException { Get-PSBreakpoint -Variable $null } "ParameterBindingValidationException"
}
finally
{
@ -404,7 +404,7 @@ Describe "Unit tests for line breakpoints on dot-sourced files" -Tags "CI" {
if ($null -eq $path)
{
$path = split-path $MyInvocation.InvocationName
$path = Split-Path $MyInvocation.InvocationName
}
try
@ -414,7 +414,7 @@ Describe "Unit tests for line breakpoints on dot-sourced files" -Tags "CI" {
#
$scriptFile = [io.path]::Combine([io.path]::GetTempPath(), "DebuggerScriptTests-InMemoryBreakpoints.ps1")
write-output '
Write-Output '
function Function1
{
write-host "In Function1" # line 4
@ -450,9 +450,9 @@ Describe "Unit tests for line breakpoints on dot-sourced files" -Tags "CI" {
#
# Set a couple of line breakpoints on the file, dot-source it and verify that the breakpoints are hit
#
$breakpoint1 = Set-PsBreakpoint $scriptFile 4 -action { continue; }
$breakpoint2 = Set-PsBreakpoint $scriptFile 9 -action { continue; }
$breakpoint3 = Set-PsBreakpoint $scriptFile 24 -action { continue; }
$breakpoint1 = Set-PSBreakpoint $scriptFile 4 -Action { continue; }
$breakpoint2 = Set-PSBreakpoint $scriptFile 9 -Action { continue; }
$breakpoint3 = Set-PSBreakpoint $scriptFile 24 -Action { continue; }
. $scriptFile
@ -500,7 +500,7 @@ Describe "Unit tests for line breakpoints on modules" -Tags "CI" {
New-Item -ItemType Directory $moduleDirectory 2> $null
write-output '
Write-Output '
function ModuleFunction1
{
write-output "In ModuleFunction1" # line 4
@ -542,15 +542,15 @@ Describe "Unit tests for line breakpoints on modules" -Tags "CI" {
#
$ENV:PSModulePath = $moduleRoot
import-module $moduleName
Import-Module $moduleName
#
# Set a couple of line breakpoints on the module and verify that they are hit
#
$breakpoint1 = Set-PsBreakpoint $moduleFile 4 -action { continue }
$breakpoint2 = Set-PsBreakpoint $moduleFile 9 -action { continue }
$breakpoint3 = Set-PsBreakpoint $moduleFile 24 -Action { continue }
$breakpoint4 = Set-PsBreakpoint $moduleFile 25 -Action { continue }
$breakpoint1 = Set-PSBreakpoint $moduleFile 4 -Action { continue }
$breakpoint2 = Set-PSBreakpoint $moduleFile 9 -Action { continue }
$breakpoint3 = Set-PSBreakpoint $moduleFile 24 -Action { continue }
$breakpoint4 = Set-PSBreakpoint $moduleFile 25 -Action { continue }
ModuleFunction1
@ -579,8 +579,8 @@ Describe "Unit tests for line breakpoints on modules" -Tags "CI" {
if ($null -ne $breakpoint2) { Remove-PSBreakpoint $breakpoint2 }
if ($null -ne $breakpoint3) { Remove-PSBreakpoint $breakpoint3 }
if ($null -ne $breakpoint4) { Remove-PSBreakpoint $breakpoint4 }
get-module $moduleName | remove-module
if (Test-Path $moduleDirectory) { Remove-Item $moduleDirectory -Recurse -force -ErrorAction silentlycontinue }
Get-Module $moduleName | Remove-Module
if (Test-Path $moduleDirectory) { Remove-Item $moduleDirectory -Recurse -Force -ErrorAction silentlycontinue }
}
}
@ -639,7 +639,7 @@ Describe "Sometimes line breakpoints are ignored" -Tags "CI" {
if ($null -ne $bp1) { Remove-PSBreakpoint $bp1 }
if ($null -ne $bp2) { Remove-PSBreakpoint $bp2 }
if (Test-Path -Path $tempFileName1) { Remove-Item $tempFileName1 -force }
if (Test-Path -Path $tempFileName2) { Remove-Item $tempFileName2 -force }
if (Test-Path -Path $tempFileName1) { Remove-Item $tempFileName1 -Force }
if (Test-Path -Path $tempFileName2) { Remove-Item $tempFileName2 -Force }
}
}

View File

@ -1,7 +1,7 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe 'Basic debugger tests' -tag 'CI' {
Describe 'Basic debugger tests' -Tag 'CI' {
BeforeAll {
Register-DebuggerHandler
@ -17,7 +17,7 @@ Describe 'Basic debugger tests' -tag 'CI' {
function Test-DollarQuestionMark {
[CmdletBinding()]
param()
Get-Process -id ([int]::MaxValue)
Get-Process -Id ([int]::MaxValue)
if (-not $?) {
'The value of $? was preserved during debugging.'
} else {
@ -27,7 +27,7 @@ Describe 'Basic debugger tests' -tag 'CI' {
$global:DollarQuestionMarkResults = Test-DollarQuestionMark -ErrorAction Break
}
$global:results = @(Test-Debugger -ScriptBlock $testScript -CommandQueue '$?')
$global:results = @(Test-Debugger -Scriptblock $testScript -CommandQueue '$?')
}
AfterAll {
@ -51,7 +51,7 @@ Describe 'Basic debugger tests' -tag 'CI' {
}
}
Describe "Breakpoints when set should be hit" -tag "CI" {
Describe "Breakpoints when set should be hit" -Tag "CI" {
Context "Basic tests" {
BeforeAll {
$script = @'
@ -63,11 +63,11 @@ Describe "Breakpoints when set should be hit" -tag "CI" {
'bbb'
'@
$path = Setup -PassThru -File BasicTest.ps1 -Content $script
$bps = 1..6 | ForEach-Object { set-psbreakpoint -script $path -line $_ -Action { continue } }
$bps = 1..6 | ForEach-Object { Set-PSBreakpoint -Script $path -Line $_ -Action { continue } }
}
AfterAll {
$bps | Remove-PSBreakPoint
$bps | Remove-PSBreakpoint
}
It "A redirected breakpoint is hit" {
@ -333,7 +333,7 @@ elseif (Test-Path $PSCommandPath)
}
}
Describe "It should be possible to reset runspace debugging" -tag "Feature" {
Describe "It should be possible to reset runspace debugging" -Tag "Feature" {
BeforeAll {
$script = @'
"line 1"

View File

@ -3,7 +3,7 @@
Describe "Tests Debugger GetCallStack() on runspaces when attached to a WinRM host process" -Tags "CI" {
It -skip "Disabled test because it is fragile and does not consistently succeed on test VMs" { }
It -Skip "Disabled test because it is fragile and does not consistently succeed on test VMs" { }
return
try

View File

@ -88,7 +88,7 @@ Describe "Tests conversion of deserialized types to original type using object p
Context 'Type conversion and parameter binding of deserialized Type case 1: type definition contains public fields' {
BeforeAll {
$t1 = new-object test1 -Property @{name="TestName1";port=80;scriptText="1..5"}
$t1 = New-Object test1 -Property @{name="TestName1";port=80;scriptText="1..5"}
$s = [System.Management.Automation.PSSerializer]::Serialize($t1)
$dst1 = [System.Management.Automation.PSSerializer]::Deserialize($s)
}
@ -114,7 +114,7 @@ Describe "Tests conversion of deserialized types to original type using object p
Context 'Type conversion and parameter binding of deserialized Type case 2: type definition contains public properties' {
BeforeAll {
$t2 = new-object test2 -Property @{Name="TestName2";Port=80;ScriptText="1..5"}
$t2 = New-Object test2 -Property @{Name="TestName2";Port=80;ScriptText="1..5"}
$s = [System.Management.Automation.PSSerializer]::Serialize($t2)
$dst2 = [System.Management.Automation.PSSerializer]::Deserialize($s)
}
@ -138,7 +138,7 @@ Describe "Tests conversion of deserialized types to original type using object p
Context 'Type conversion and parameter binding of deserialized Type case 1: type definition contains 2 public properties and 1 read only property' {
BeforeAll {
$t3 = new-object test3 -Property @{Name="TestName3";Port=80}
$t3 = New-Object test3 -Property @{Name="TestName3";Port=80}
$s = [System.Management.Automation.PSSerializer]::Serialize($t3)
$dst3 = [System.Management.Automation.PSSerializer]::Deserialize($s)
}
@ -165,7 +165,7 @@ Describe "Tests conversion of deserialized types to original type using object p
Context 'Type conversion and parameter binding of deserialized Type case 1: type definition contains 2 public properties' {
BeforeAll {
$t4 = new-object test4 -Property @{Name="TestName4";Port=80}
$t4 = New-Object test4 -Property @{Name="TestName4";Port=80}
$s = [System.Management.Automation.PSSerializer]::Serialize($t4)
$dst4 = [System.Management.Automation.PSSerializer]::Deserialize($s)
}

View File

@ -76,6 +76,6 @@ Describe "Dynamic parameter support in script cmdlets." -Tags "CI" {
}
It "Parameter is defined in Class" {
foo-bar -path class -name "myName" | Should -BeExactly 'myName'
foo-bar -path class -Name "myName" | Should -BeExactly 'myName'
}
}

View File

@ -50,7 +50,7 @@ Describe "Generics support" -Tags "CI" {
$x = [dictionary[dictionary[list[int],string], stack[double]]]::new()
$x.gettype().fullname | Should -Match "double"
$y = new-object "dictionary[dictionary[list[int],string], stack[double]]"
$y = New-Object "dictionary[dictionary[list[int],string], stack[double]]"
$y.gettype().fullname | Should -Match "double"
}
@ -65,7 +65,7 @@ Describe "Generics support" -Tags "CI" {
$e | Should -Match "\[T\]"
}
It 'Array type works properly' -skip:$IsCoreCLR{
It 'Array type works properly' -Skip:$IsCoreCLR{
$x = [system.array]::ConvertAll.OverloadDefinitions
$x | Should -Match "static\s+TOutput\[\]\s+ConvertAll\[TInput,\s+TOutput\]\("
}

View File

@ -35,7 +35,7 @@ Describe "Tests for hashtable to PSCustomObject conversion" -Tags "CI" {
It 'Type Validation: <Name>' -TestCases:$testdata {
param ($Name, $Cmd, $ExpectedType)
Invoke-expression $Cmd -OutVariable a
Invoke-Expression $Cmd -OutVariable a
$a = Get-Variable -Name a -ValueOnly
$a | Should -BeOfType $ExpectedType
}
@ -47,7 +47,7 @@ Describe "Tests for hashtable to PSCustomObject conversion" -Tags "CI" {
$p = 0
# Checks if the first property is One
$x.psobject.Properties | foreach-object `
$x.psobject.Properties | ForEach-Object `
{
if ($p -eq 0)
{
@ -64,7 +64,7 @@ Describe "Tests for hashtable to PSCustomObject conversion" -Tags "CI" {
$p = 0
# Checks if the first property is One
$x.psobject.Properties | foreach-object `
$x.psobject.Properties | ForEach-Object `
{
if ($p -eq 0)
{
@ -136,7 +136,7 @@ Describe "Tests for hashtable to PSCustomObject conversion" -Tags "CI" {
$obj = $null
$ht = @{one=1;two=2}
{ $obj = New-Object System.Management.Automation.PSCustomObject -property $ht } |
{ $obj = New-Object System.Management.Automation.PSCustomObject -Property $ht } |
Should -Throw -ErrorId "CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand"
$obj | Should -BeNullOrEmpty
}

View File

@ -30,7 +30,7 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import default culture is done correctly' {
import-localizedData mydata;
Import-LocalizedData mydata;
$mydata.string1 | Should -BeExactly 'string1 for en-US'
$mydata.string2 | Should -BeExactly 'string2 for en-US'
@ -38,12 +38,12 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import specific culture(en-US)' {
import-localizedData mydata -uiculture en-US
Import-LocalizedData mydata -UICulture en-US
$mydata.string1 | Should -BeExactly 'string1 for en-US'
$mydata.string2 | Should -BeExactly 'string2 for en-US'
import-localizedData mydata -uiculture fr-FR
Import-LocalizedData mydata -UICulture fr-FR
$mydata.string1 | Should -BeExactly 'string1 for fr-FR'
$mydata.string2 | Should -BeExactly 'string2 for fr-FR'
@ -51,7 +51,7 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import non existing culture is done correctly' {
import-localizedData mydata -uiculture nl-NL -ErrorAction SilentlyContinue -ErrorVariable ev
Import-LocalizedData mydata -UICulture nl-NL -ErrorAction SilentlyContinue -ErrorVariable ev
$ev | Should -Not -BeNullOrEmpty
$ev[0].Exception | Should -BeOfType System.Management.Automation.PSInvalidOperationException
@ -59,12 +59,12 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import different file name is done correctly' {
import-localizedData mydata -filename foo
Import-LocalizedData mydata -FileName foo
$mydata.string1 | Should -BeExactly 'string1 from foo in en-US'
$mydata.string2 | Should -BeExactly 'string2 from foo in en-US'
import-localizedData mydata -filename foo -uiculture fr-FR
Import-LocalizedData mydata -FileName foo -UICulture fr-FR
$mydata.string1 | Should -BeExactly 'string1 from foo in fr-FR'
$mydata.string2 | Should -BeExactly 'string2 from foo in fr-FR'
@ -72,12 +72,12 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import different file base is done correctly' {
import-localizedData mydata -basedirectory "${dir}\newbase"
Import-LocalizedData mydata -BaseDirectory "${dir}\newbase"
$mydata.string1 | Should -BeExactly 'string1 for en-US under newbase'
$mydata.string2 | Should -BeExactly 'string2 for en-US under newbase'
import-localizedData mydata -basedirectory "${dir}\newbase" -uiculture fr-FR
Import-LocalizedData mydata -BaseDirectory "${dir}\newbase" -UICulture fr-FR
$mydata.string1 | Should -BeExactly 'string1 for fr-FR under newbase'
$mydata.string2 | Should -BeExactly 'string2 for fr-FR under newbase'
@ -85,12 +85,12 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import different file base and file name' {
import-localizedData mydata -basedirectory "${dir}\newbase" -filename foo
Import-LocalizedData mydata -BaseDirectory "${dir}\newbase" -FileName foo
$mydata.string1 | Should -BeExactly 'string1 for en-US from foo under newbase'
$mydata.string2 | Should -BeExactly 'string2 for en-US from foo under newbase'
import-localizedData mydata -basedirectory "${dir}\newbase" -filename foo -uiculture fr-FR
Import-LocalizedData mydata -BaseDirectory "${dir}\newbase" -FileName foo -UICulture fr-FR
$mydata.string1 | Should -BeExactly 'string1 for fr-FR from foo under newbase'
$mydata.string2 | Should -BeExactly 'string2 for fr-FR from foo under newbase'
@ -98,7 +98,7 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It "Import variable that doesn't exist" {
import-localizedData mydata2
Import-LocalizedData mydata2
$mydata2.string1 | Should -BeExactly 'string1 for en-US'
$mydata2.string2 | Should -BeExactly 'string2 for en-US'
@ -109,7 +109,7 @@ Describe 'Testing of script internationalization' -Tags "CI" {
$script:exception = $null
& {
trap {$script:exception = $_ ; continue }
import-localizedData mydata -filename bad
Import-LocalizedData mydata -FileName bad
}
$script:exception.exception | Should -Not -BeNullOrEmpty
@ -118,7 +118,7 @@ Describe 'Testing of script internationalization' -Tags "CI" {
It 'Import if psd1 file is done correctly' {
import-localizedData mydata -filename if
Import-LocalizedData mydata -FileName if
if ($PSCulture -eq 'en-US')
{
@ -143,13 +143,13 @@ Describe 'Testing of script internationalization' -Tags "CI" {
$script:exception = $null
& {
trap {$script:exception = $_.Exception ; continue }
invoke-expression $cmd
Invoke-Expression $cmd
}
$exception | Should -Match $Expected
}
it 'Check alternate syntax that also supports complex variable names' {
It 'Check alternate syntax that also supports complex variable names' {
& {
$script:mydata = data { 123 }
@ -159,22 +159,22 @@ Describe 'Testing of script internationalization' -Tags "CI" {
$mydata = data { 456 }
& {
# This import should not clobber the one at script scope
import-localizedData mydata -uiculture en-US
Import-LocalizedData mydata -UICulture en-US
}
$mydata | Should -Be 456
& {
# This import should clobber the one at script scope
import-localizedData script:mydata -uiculture en-US
Import-LocalizedData script:mydata -UICulture en-US
}
$script:mydata.string1 | Should -BeExactly 'string1 for en-US'
}
It 'Check fallback to current directory plus -SupportedCommand parameter is done correctly' {
new-alias MyConvertFrom-StringData ConvertFrom-StringData
New-Alias MyConvertFrom-StringData ConvertFrom-StringData
import-localizeddata local:mydata -uiculture fr-ca -filename I18n.Tests_fallback.psd1 -SupportedCommand MyConvertFrom-StringData
Import-LocalizedData local:mydata -UICulture fr-ca -FileName I18n.Tests_fallback.psd1 -SupportedCommand MyConvertFrom-StringData
$mydata[0].string1 | Should -BeExactly 'fallback string1 for en-US'
$mydata[1] | Should -Be 42
}

View File

@ -130,8 +130,8 @@ Describe 'Line endings' -Tags "CI" {
# wrap the content in the specified begin and end quoting characters.
$content = "$($Begin)$($expected)$($End)"
# BUG: Set-Content is failing on linux if the file does not exit.
$null = New-item -path TESTDRIVE:$fileName -force
$content | Set-content -NoNewline -Encoding ascii -Path TESTDRIVE:\$fileName
$null = New-Item -Path TESTDRIVE:$fileName -Force
$content | Set-Content -NoNewline -Encoding ascii -Path TESTDRIVE:\$fileName
$actual = &( "TESTDRIVE:\$fileName")
# $actual should be the content string ($expected) without the begin and end quoting characters.

View File

@ -14,7 +14,7 @@ Describe "NativeLinuxCommands" -tags "CI" {
}
It "Should find Application grep" {
(get-command grep).CommandType | Should -Be Application
(Get-Command grep).CommandType | Should -Be Application
}
It "Should pipe to grep and get result" {
@ -22,7 +22,7 @@ Describe "NativeLinuxCommands" -tags "CI" {
}
It "Should find Application touch" {
(get-command touch).CommandType | Should -Be Application
(Get-Command touch).CommandType | Should -Be Application
}
It "Should not redirect standard input if native command is the first command in pipeline (1)" {

View File

@ -2,7 +2,7 @@
# Licensed under the MIT License.
Describe 'Test for cmdlet to support Ordered Attribute on hash literal nodes' -Tags "CI" {
It 'New-Object - Property Parameter Must take IDictionary' {
$a = new-object psobject -property ([ordered]@{one=1;two=2})
$a = New-Object psobject -Property ([ordered]@{one=1;two=2})
$a | Should -Not -BeNullOrEmpty
$a.one | Should -Be 1
}
@ -26,7 +26,7 @@ Describe 'Test for cmdlet to support Ordered Attribute on hash literal nodes' -T
</helpItems>
'@
{ $script:a = select-xml -content $helpXml -xpath "//command:name" -namespace (
{ $script:a = Select-Xml -Content $helpXml -XPath "//command:name" -Namespace (
[ordered]@{command="http://schemas.microsoft.com/maml/dev/command/2004/10";
maml="http://schemas.microsoft.com/maml/2004/10";
dev="http://schemas.microsoft.com/maml/dev/2004/10"}) } | Should -Not -Throw
@ -64,7 +64,7 @@ Describe 'Test for cmdlet to support Ordered Attribute on hash literal nodes' -T
$script:a = $null
{$script:a = Get-ChildItem | select-object -property Name, (
{$script:a = Get-ChildItem | Select-Object -Property Name, (
[ordered]@{Name="IsDirectory";
Expression ={$_.PSIsContainer}})} | Should -Not -Throw

View File

@ -25,7 +25,7 @@ Describe "Tests OutVariable only" -Tags "CI" {
param()
"bar"
get-foo1 -outVariable script:a
get-foo1 -OutVariable script:a
}
}
@ -71,7 +71,7 @@ Describe "Tests OutVariable only" -Tags "CI" {
It 'Nested OutVariable' {
get-bar -outVariable b > $null
get-bar -OutVariable b > $null
$script:a | Should -BeExactly 'foo'
$b | Should -BeExactly @("bar", "foo")
}
@ -84,7 +84,7 @@ Describe "Test ErrorVariable only" -Tags "CI" {
[CmdletBinding()]
param()
write-error "foo"
Write-Error "foo"
}
function get-foo2
@ -100,8 +100,8 @@ Describe "Test ErrorVariable only" -Tags "CI" {
[CmdletBinding()]
param()
write-error "bar"
get-foo1 -errorVariable script:a
Write-Error "bar"
get-foo1 -ErrorVariable script:a
}
}
@ -141,10 +141,10 @@ Describe "Test ErrorVariable only" -Tags "CI" {
}
It 'Appending ErrorVariable Case 2: $PSCmdlet.writeerror' {
write-error "foo" -errorVariable script:foo 2> $null
Write-Error "foo" -ErrorVariable script:foo 2> $null
$a = 'a','b'
get-foo2 -errorVariable +a 2> $null
get-foo2 -ErrorVariable +a 2> $null
$a.count | Should -Be 3
$a| ForEach-Object {$_.ToString()} | Should -BeExactly @('a', 'b', 'foo')
@ -152,7 +152,7 @@ Describe "Test ErrorVariable only" -Tags "CI" {
It 'Nested ErrorVariable' {
get-bar -errorVariable b 2> $null
get-bar -ErrorVariable b 2> $null
$script:a | Should -BeExactly 'foo'
$b | Should -BeExactly @("bar","foo")
@ -160,7 +160,7 @@ Describe "Test ErrorVariable only" -Tags "CI" {
It 'Nested ErrorVariable with redirection' {
get-bar -errorVariable b 2>&1 > $null
get-bar -ErrorVariable b 2>&1 > $null
$script:a | Should -BeExactly 'foo'
$b | Should -BeExactly @("bar", "foo")
@ -176,8 +176,8 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param()
write-output "foo-output"
write-error "foo-error"
Write-Output "foo-output"
Write-Error "foo-error"
}
function get-foo1
@ -185,7 +185,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param()
write-error "foo"
Write-Error "foo"
}
function get-foo2
@ -201,8 +201,8 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param()
write-error "bar"
get-foo1 -errorVariable script:a
Write-Error "bar"
get-foo1 -ErrorVariable script:a
}
function get-foo3
@ -211,8 +211,8 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
param()
"foo-output-0"
write-output "foo-output-1"
write-error "foo-error"
Write-Output "foo-output-1"
Write-Error "foo-error"
}
function get-bar2
@ -221,15 +221,15 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
param()
"bar-output-0"
write-output "bar-output-1"
write-error "bar-error"
get-foo3 -OutVariable script:foo_out -errorVariable script:foo_err
Write-Output "bar-output-1"
Write-Error "bar-error"
get-foo3 -OutVariable script:foo_out -ErrorVariable script:foo_err
}
}
It 'Update OutVariable and ErrorVariable' {
get-foo3 -OutVariable out -errorVariable err 2> $null > $null
get-foo3 -OutVariable out -ErrorVariable err 2> $null > $null
$out | Should -BeExactly @("foo-output-0", "foo-output-1")
$err | Should -BeExactly "foo-error"
@ -237,7 +237,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
It 'Update OutVariable and ErrorVariable' {
get-bar2 -OutVariable script:bar_out -errorVariable script:bar_err 2> $null > $null
get-bar2 -OutVariable script:bar_out -ErrorVariable script:bar_err 2> $null > $null
$foo_out | Should -BeExactly @("foo-output-0", "foo-output-1")
$foo_err | Should -BeExactly 'foo-error'
@ -252,7 +252,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param()
write-error "foo-error"
Write-Error "foo-error"
try
{
@ -262,7 +262,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
{}
}
get-foo4 -errorVariable err 2> $null
get-foo4 -ErrorVariable err 2> $null
$err | Should -BeExactly @("foo-error", "foo-exception")
}
@ -275,8 +275,8 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
process
{
write-output $foo
write-error $foo
Write-Output $foo
Write-Error $foo
}
}
@ -293,7 +293,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
Context 'Error variable in multi-command pipeline (with native cmdlet)' {
BeforeAll {
(get-foo -ErrorVariable foo_err | get-item -ErrorVariable get_item_err ) 2>&1 > $null
(get-foo -ErrorVariable foo_err | Get-Item -ErrorVariable get_item_err ) 2>&1 > $null
}
It '$foo_err should be "foo-error"' {
@ -314,12 +314,12 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param([Parameter(ValueFromPipeline = $true)][string] $i)
write-error 'bar-error'
write-output 'bar-output'
Write-Error 'bar-error'
Write-Output 'bar-output'
get-foo
}
(get-foo -errorVariable foo_err | get-bar3 -errorVariable bar_err) 2>&1 > $null
(get-foo -ErrorVariable foo_err | get-bar3 -ErrorVariable bar_err) 2>&1 > $null
$foo_err | Should -BeExactly 'foo-error'
$bar_err | Should -BeExactly @("bar-error", "foo-error")
@ -332,8 +332,8 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param([Parameter(ValueFromPipeline = $true)][string] $i)
write-error "foo-error"
write-output $i
Write-Error "foo-error"
Write-Output $i
}
function get-bar4
@ -341,11 +341,11 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
[CmdletBinding()]
param([Parameter(ValueFromPipeline = $true)][string] $i)
write-error "bar-error"
get-foo6 "foo-output" -errorVariable script:foo_err1 | get-foo6 -errorVariable script:foo_err2
Write-Error "bar-error"
get-foo6 "foo-output" -ErrorVariable script:foo_err1 | get-foo6 -ErrorVariable script:foo_err2
}
get-bar4 -errorVariable script:bar_err 2>&1 > $null
get-bar4 -ErrorVariable script:bar_err 2>&1 > $null
$script:foo_err1 | Should -BeExactly "foo-error"
$script:foo_err2 | Should -BeExactly "foo-error"
@ -359,7 +359,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
param([Parameter(ValueFromPipeline = $true)][string] $output)
$output
write-error "foo-error"
Write-Error "foo-error"
}
function get-bar5
@ -368,7 +368,7 @@ Describe "Update both OutVariable and ErrorVariable" -Tags "CI" {
param()
"bar-output"
write-error "bar-error"
Write-Error "bar-error"
get-foo7 "foo-output" -ErrorVariable script:foo_err1 -ov script:foo_out1 | get-foo7 -ErrorVariable script:foo_err2 -ov script:foo_out2
get-foo7 "foo-output" -ErrorVariable script:foo_err3 -ov script:foo_out3 | get-foo7 -ErrorVariable script:foo_err4 -ov script:foo_out4
}

View File

@ -137,7 +137,7 @@ Describe "Tests for parameter binding" -Tags "CI" {
}
}
$b = 1..10 | select-object @{name='foo'; expression={$_ * 10}} | get-foo
$b = 1..10 | Select-Object @{name='foo'; expression={$_ * 10}} | get-foo
$b -join ',' | Should -BeExactly '10,20,30,40,50,60,70,80,90,100'
}
@ -451,12 +451,12 @@ Describe "Tests for parameter binding" -Tags "CI" {
}
#known issue 2069
It 'Some conversions should be attempted before trying to encode a collection' -skip:$IsCoreCLR {
It 'Some conversions should be attempted before trying to encode a collection' -Skip:$IsCoreCLR {
try {
$null = [Test.Language.ParameterBinding.MyClass]
}
catch {
add-type -PassThru -TypeDefinition @'
Add-Type -PassThru -TypeDefinition @'
using System.Management.Automation;
using System;
using System.Collections;
@ -486,7 +486,7 @@ Describe "Tests for parameter binding" -Tags "CI" {
}
}
}
'@ | ForEach-Object {$_.assembly} | Import-module
'@ | ForEach-Object {$_.assembly} | Import-Module
}
Get-TestCmdlet -MyParameter @{ a = 42 } | Should -BeExactly 'hashtable'

View File

@ -134,44 +134,44 @@ Describe 'get-help HelpFunc1' -Tags "Feature" {
}
Context 'Get-Help helpFunc1' {
$x = get-help helpFunc1
$x = Get-Help helpFunc1
TestHelpFunc1 $x
}
Context 'Get-Help dynamicHelpFunc1' {
$x = get-help dynamicHelpFunc1
$x = Get-Help dynamicHelpFunc1
TestHelpFunc1 $x
}
Context 'get-help helpFunc1 -component blah' {
$x = get-help helpFunc1 -component blah -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Component blah -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpError $x $e 'HelpNotFound,Microsoft.PowerShell.Commands.GetHelpCommand'
}
Context 'get-help helpFunc1 -component Something' {
$x = get-help helpFunc1 -component Something -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Component Something -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpFunc1 $x
It '$e should be empty' { $e.Count | Should -Be 0 }
}
Context 'get-help helpFunc1 -role blah' {
$x = get-help helpFunc1 -component blah -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Component blah -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpError $x $e 'HelpNotFound,Microsoft.PowerShell.Commands.GetHelpCommand'
}
Context 'get-help helpFunc1 -role CrazyUser' {
$x = get-help helpFunc1 -role CrazyUser -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Role CrazyUser -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpFunc1 $x
It '$e should be empty' { $e.Count | Should -Be 0 }
}
Context '$x = get-help helpFunc1 -functionality blah' {
$x = get-help helpFunc1 -functionality blah -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Functionality blah -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpError $x $e 'HelpNotFound,Microsoft.PowerShell.Commands.GetHelpCommand'
}
Context '$x = get-help helpFunc1 -functionality Useless' {
$x = get-help helpFunc1 -functionality Useless -ErrorAction SilentlyContinue -ErrorVariable e
$x = Get-Help helpFunc1 -Functionality Useless -ErrorAction SilentlyContinue -ErrorVariable e
TestHelpFunc1 $x
It '$e should be empty' { $e.Count | Should -Be 0 }
}
@ -187,7 +187,7 @@ Describe 'get-help file' -Tags "CI" {
}
AfterAll {
remove-item $tmpfile -Force -ErrorAction silentlycontinue
Remove-Item $tmpfile -Force -ErrorAction silentlycontinue
}
Context 'get-help file1' {
@ -202,7 +202,7 @@ Describe 'get-help file' -Tags "CI" {
get-help foo
'@ > $tmpfile
$x = get-help $tmpfile
$x = Get-Help $tmpfile
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
$x = & $tmpfile
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly 'Function help, not script help' }
@ -223,7 +223,7 @@ Describe 'get-help file' -Tags "CI" {
get-help foo
'@ > $tmpfile
$x = get-help $tmpfile
$x = Get-Help $tmpfile
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly 'Script help, not function help' }
$x = & $tmpfile
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
@ -240,7 +240,7 @@ Describe 'get-help other tests' -Tags "CI" {
}
AfterAll {
remove-item $tempFile -Force -ErrorAction silentlycontinue
Remove-Item $tempFile -Force -ErrorAction silentlycontinue
}
Context 'get-help missingHelp' {
@ -253,7 +253,7 @@ Describe 'get-help other tests' -Tags "CI" {
function missingHelp { param($abc) }
$x = get-help missingHelp
$x = Get-Help missingHelp
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
It '$x.Synopsis' { $x.Synopsis.Trim() | Should -BeExactly 'missingHelp [[-abc] <Object>]' }
}
@ -267,7 +267,7 @@ Describe 'get-help other tests' -Tags "CI" {
function helpFunc2 { param($abc) }
$x = get-help helpFunc2
$x = Get-Help helpFunc2
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
It '$x.Synopsis' { $x.Synopsis.Trim() | Should -BeExactly 'This help block goes on helpFunc2' }
}
@ -289,7 +289,7 @@ Describe 'get-help other tests' -Tags "CI" {
"@
Set-Content $tempFile $script
$x = get-help $tempFile
$x = Get-Help $tempFile
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly "This is script help" }
$x = & $tempFile
@ -313,7 +313,7 @@ Describe 'get-help other tests' -Tags "CI" {
"@
Set-Content $tempFile $script
$x = get-help $tempFile
$x = Get-Help $tempFile
It $x.Synopsis { $x.Synopsis | Should -BeExactly "This is script help" }
$x = & $tempFile
@ -348,7 +348,7 @@ Describe 'get-help other tests' -Tags "CI" {
'@
Set-Content $tempFile $script
$x = get-help $tempFile
$x = Get-Help $tempFile
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly "Changes Admin passwords across all KDE servers." }
It '$x.parameters.parameter[0].required' { $x.parameters.parameter[0].required | Should -BeTrue}
@ -393,7 +393,7 @@ Describe 'get-help other tests' -Tags "CI" {
{
}
$x = get-help helpFunc4
$x = Get-Help helpFunc4
$x.Synopsis | Should -BeExactly ""
}
@ -403,7 +403,7 @@ Describe 'get-help other tests' -Tags "CI" {
{
# .EXTERNALHELP scriptHelp.Tests.xml
}
$x = get-help helpFunc5
$x = Get-Help helpFunc5
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly "A useless function, really." }
}
@ -415,7 +415,7 @@ Describe 'get-help other tests' -Tags "CI" {
}
if ($PSUICulture -ieq "en-us")
{
$x = get-help helpFunc6
$x = Get-Help helpFunc6
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly "Useless. Really, trust me on this one." }
}
@ -428,7 +428,7 @@ Describe 'get-help other tests' -Tags "CI" {
}
if ($PSUICulture -ieq "en-us")
{
$x = get-help helpFunc6
$x = Get-Help helpFunc6
It '$x should not be $null' { $x | Should -Not -BeNullOrEmpty }
It '$x.Synopsis' { $x.Synopsis | Should -BeExactly "Useless in newbase. Really, trust me on this one." }
}
@ -446,9 +446,9 @@ Describe 'get-help other tests' -Tags "CI" {
It '$x.Category' { $x.Category | Should -BeExactly 'Cmdlet' }
# Make sure help is a function, or the test would fail
if ($null -ne (get-command -type Function help))
if ($null -ne (Get-Command -type Function help))
{
if ((get-content function:help) -Match "FORWARDHELP")
if ((Get-Content function:help) -Match "FORWARDHELP")
{
$x = Get-Help help
It '$x.Name' { $x.Name | Should -BeExactly 'Get-Help' }
@ -466,7 +466,7 @@ Describe 'get-help other tests' -Tags "CI" {
function helpFunc8
{
}
get-help helpFunc8
Get-Help helpFunc8
}
$x = Get-Help func8
@ -486,7 +486,7 @@ Describe 'get-help other tests' -Tags "CI" {
function func9
{
}
get-help func9
Get-Help func9
}
$x = Get-Help helpFunc9
It 'help is on the outer functon' { $x.Synopsis | Should -BeExactly 'Help on helpFunc9, not func9' }
@ -503,7 +503,7 @@ Describe 'get-help other tests' -Tags "CI" {
{
}
$x = get-help helpFunc10
$x = Get-Help helpFunc10
$x.Synopsis | Should -BeExactly 'Help on helpFunc10'
}
@ -539,7 +539,7 @@ Describe 'get-help other tests' -Tags "CI" {
)
}
$x = get-help helpFunc11 -det
$x = Get-Help helpFunc11 -det
$x.Parameters.parameter | ForEach-Object {
It '$_.description' { $_.description[0].text | Should -Match "^$($_.Name)\s+help" }
}
@ -573,8 +573,8 @@ Describe 'get-help other tests' -Tags "CI" {
Adds .txt to bar
#>
}
$x = get-help helpFunc12
It '$x.syntax' { ($x.syntax | Out-String -width 250) | Should -Match "helpFunc12 \[-Name] <String> \[\[-Extension] <String>] \[\[-NoType] <Object>] \[-ASwitch] \[\[-AnEnum] \{Alias.*All}] \[<CommonParameters>]" }
$x = Get-Help helpFunc12
It '$x.syntax' { ($x.syntax | Out-String -Width 250) | Should -Match "helpFunc12 \[-Name] <String> \[\[-Extension] <String>] \[\[-NoType] <Object>] \[-ASwitch] \[\[-AnEnum] \{Alias.*All}] \[<CommonParameters>]" }
It '$x.syntax.syntaxItem.parameter[3].position' { $x.syntax.syntaxItem.parameter[3].position | Should -BeExactly 'named' }
It '$x.syntax.syntaxItem.parameter[3].parameterValue' { $x.syntax.syntaxItem.parameter[3].parameterValue | Should -BeNullOrEmpty }
It '$x.parameters.parameter[3].parameterValue' { $x.parameters.parameter[3].parameterValue | Should -Not -BeNullOrEmpty }
@ -607,7 +607,7 @@ Describe 'get-help other tests' -Tags "CI" {
)
}
$x = get-help helpFunc13
$x = Get-Help helpFunc13
It '$x.Parameters.parameter[0].globbing' { $x.Parameters.parameter[0].globbing | Should -BeExactly 'true' }
It '$x.Parameters.parameter[1].defaultValue' { $x.Parameters.parameter[1].defaultValue | Should -BeExactly '42' }
@ -664,7 +664,7 @@ Describe 'get-help other tests' -Tags "CI" {
param()
}
$x = get-help foo
$x = Get-Help foo
It '$x.examples.example[0].introduction[0].text' { $x.examples.example[0].introduction[0].text | Should -BeExactly "PS > " }
It '$x.examples.example[0].code' { $x.examples.example[0].code | Should -BeExactly "`$a = Get-Service`n`$a | group Status" }
It '$x.examples.example[0].remarks[0].text' { $x.examples.example[0].remarks[0].text | Should -BeNullOrEmpty }

View File

@ -346,7 +346,7 @@ Describe "Import-Module from CompatiblePSEditions-checked paths" -Tag "CI" {
(Invoke-Command -Session $s {Get-Location}).Path | Should -BeExactly $PWD.Path
# after WinCompat cleanup local $PWD changes should not cause errors
Remove-module $ModuleName -Force
Remove-Module $ModuleName -Force
Pop-Location
}

View File

@ -145,7 +145,7 @@ Describe "Enter-PSHostProcess tests" -Tag Feature {
# If opening the runspace fails, then print out the trace with the callstack
Wait-UntilTrue { $rs.RunspaceStateInfo.State -eq [System.Management.Automation.Runspaces.RunspaceState]::Opened } |
Should -BeTrue -Because (get-content $splat.FilePath -Raw)
Should -BeTrue -Because (Get-Content $splat.FilePath -Raw)
$ps = [powershell]::Create()
$ps.Runspace = $rs

View File

@ -245,7 +245,7 @@ Describe "Get-Command Tests" -Tags "CI" {
}
It "verify if get the proper dynamic parameter type skipped by issue #1430" -Pending {
$results = Get-Command TestGetCommand-DynamicParametersDCR -TestToRun returngenericparameter -parametertype System.Diagnostics.Process
$results = Get-Command TestGetCommand-DynamicParametersDCR -TestToRun returngenericparameter -ParameterType System.Diagnostics.Process
VerifyParameterType -cmdlet $results[0] -parameterName "TypedValue" -parameterType System.Diagnostics.Process
}

View File

@ -122,7 +122,7 @@ Describe "History cmdlet test cases" -Tags "CI" {
EndExecutionTime = $end
}
$history | Add-History
$h = Get-History -count 1
$h = Get-History -Count 1
$h.Duration | Should -Be $duration
}
}

View File

@ -81,7 +81,7 @@ Describe "Import-Module with ScriptsToProcess" -Tags "CI" {
AfterEach {
$m = @('module1','module2','script1','script2')
remove-module $m -Force -ErrorAction SilentlyContinue
Remove-Module $m -Force -ErrorAction SilentlyContinue
Remove-Item out.txt -Force -ErrorAction SilentlyContinue
}
@ -163,7 +163,7 @@ Describe "Import-Module for Binary Modules" -Tags 'CI' {
try {
$TestModulePath = Join-Path $TESTDRIVE "System.$extension"
$job = Start-Job -ScriptBlock {
$module = Import-Module $using:TestModulePath -Passthru;
$module = Import-Module $using:TestModulePath -PassThru;
$module.ImplementingAssembly.Location;
Test-BinaryModuleCmdlet1
}

View File

@ -29,8 +29,8 @@ Describe "Job Cmdlet Tests" -Tag "CI" {
{ Get-Job $j -ErrorAction Stop } | Should -Throw -ErrorId "JobWithSpecifiedNameNotFound,Microsoft.PowerShell.Commands.GetJobCommand"
}
It "Receive-Job can retrieve job results" {
Wait-Job -Timeout 60 -id $j.id | Should -Not -BeNullOrEmpty
receive-job -id $j.id | Should -Be 2
Wait-Job -Timeout 60 -Id $j.id | Should -Not -BeNullOrEmpty
Receive-Job -Id $j.id | Should -Be 2
}
It "-RunAs32 not supported from 64-bit pwsh" -Skip:(-not [System.Environment]::Is64BitProcess) {
{ Start-Job -ScriptBlock {} -RunAs32 } | Should -Throw -ErrorId "RunAs32NotSupported,Microsoft.PowerShell.Commands.StartJobCommand"
@ -44,7 +44,7 @@ Describe "Job Cmdlet Tests" -Tag "CI" {
It "Start-Job accepts arguments" {
$sb = { Write-Output $args[1]; Write-Output $args[0] }
$j = Start-Job -ScriptBlock $sb -ArgumentList "$TestDrive", 42
Wait-job -Timeout (5 * 60) $j | Should -Be $j
Wait-Job -Timeout (5 * 60) $j | Should -Be $j
$r = Receive-Job $j
$r -Join "," | Should -Be "42,$TestDrive"
}
@ -150,7 +150,7 @@ Describe "Job Cmdlet Tests" -Tag "CI" {
}
}
}
Describe "Debug-job test" -tag "Feature" {
Describe "Debug-job test" -Tag "Feature" {
BeforeAll {
$rs = [runspacefactory]::CreateRunspace()
$rs.Open()
@ -165,7 +165,7 @@ Describe "Debug-job test" -tag "Feature" {
}
# we check this via implication.
# if we're debugging a job, then the debugger will have a callstack
It "Debug-Job will break into debugger" -pending {
It "Debug-Job will break into debugger" -Pending {
$ps.AddScript('$job = start-job { 1..300 | ForEach-Object { Start-Sleep 1 } }').Invoke()
$ps.Commands.Clear()
$ps.Runspace.Debugger.GetCallStack() | Should -BeNullOrEmpty
@ -178,7 +178,7 @@ Describe "Debug-job test" -tag "Feature" {
}
}
Describe "Ampersand background test" -tag "CI","Slow" {
Describe "Ampersand background test" -Tag "CI","Slow" {
Context "Simple background job" {
AfterEach {
Get-Job | Remove-Job -Force
@ -194,7 +194,7 @@ Describe "Ampersand background test" -tag "CI","Slow" {
}
It "doesn't cause error when variable is missing" {
Remove-Item variable:name -ErrorAction Ignore
$j = write-output "Hi $name" &
$j = Write-Output "Hi $name" &
Receive-Job $j -Wait | Should -BeExactly "Hi "
}
It "Copies variables to the child process" {
@ -215,7 +215,7 @@ Describe "Ampersand background test" -tag "CI","Slow" {
$PID | Should -Not -BeExactly $cpid
}
It "starts in the current directory" {
$j = Get-Location | Foreach-Object -MemberName Path &
$j = Get-Location | ForEach-Object -MemberName Path &
Receive-Job -Wait $j | Should -Be ($PWD.Path)
}
It "Test that output redirection is done in the background job" {

View File

@ -1,6 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "Out-Default Tests" -tag CI {
Describe "Out-Default Tests" -Tag CI {
BeforeAll {
# due to https://github.com/PowerShell/PowerShell/issues/3405, `Out-Default -Transcript` emits output to pipeline
# as running in Pester effectively wraps everything in parenthesis, workaround is to use another powershell

View File

@ -1,6 +1,6 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "Out-Host Tests" -tag CI {
Describe "Out-Host Tests" -Tag CI {
BeforeAll {
$th = New-TestHost
$rs = [runspacefactory]::Createrunspace($th)

View File

@ -34,15 +34,15 @@ Describe "Tests Get-Command with relative paths and wildcards" -Tag "CI" {
}
It "Test wildcard with relative directory path" {
push-location $TestDrive
Push-Location $TestDrive
$result = Get-Command -Name .\WildCardCommandA*
pop-location
Pop-Location
$result | Should -Not -BeNullOrEmpty
$result | Should -Be WildCardCommandA.exe
}
It "Test with PowerShell wildcard and relative path" {
push-location $TestDrive
Push-Location $TestDrive
# This should use the wildcard to find WildCardCommandA.exe
$result = Get-Command -Name .\WildCardCommand[A].exe
@ -59,7 +59,7 @@ Describe "Tests Get-Command with relative paths and wildcards" -Tag "CI" {
It "Get-Command -ShowCommandInfo property field test" {
$properties = ($commandInfo | Get-Member -MemberType NoteProperty)
$propertiesAsString = $properties.name | out-string
$propertiesAsString = $properties.name | Out-String
$propertiesAsString | Should -MatchExactly 'CommandType'
$propertiesAsString | Should -MatchExactly 'Definition'
$propertiesAsString | Should -MatchExactly 'Module'
@ -86,7 +86,7 @@ Describe "Tests Get-Command with relative paths and wildcards" -Tag "CI" {
It "Get-Command -ShowCommandInfo ParameterSets property field test" {
$properties = ($commandInfo.ParameterSets[0] | Get-Member -MemberType NoteProperty)
$propertiesAsString = $properties.name | out-string
$propertiesAsString = $properties.name | Out-String
$propertiesAsString | Should -MatchExactly 'IsDefault'
$propertiesAsString | Should -MatchExactly 'Name'
$propertiesAsString | Should -MatchExactly 'Parameters'
@ -94,7 +94,7 @@ Describe "Tests Get-Command with relative paths and wildcards" -Tag "CI" {
It "Get-Command -ShowCommandInfo Parameters property field test" {
$properties = ($commandInfo.ParameterSets[0].Parameters | Get-Member -MemberType NoteProperty)
$propertiesAsString = $properties.name | out-string
$propertiesAsString = $properties.name | Out-String
$propertiesAsString | Should -MatchExactly 'HasParameterSet'
$propertiesAsString | Should -MatchExactly 'IsMandatory'
$propertiesAsString | Should -MatchExactly 'Name'

View File

@ -9,7 +9,7 @@ Describe "Remote import-module tests" -Tags 'Feature','RequireAdminOnWindows' {
$PSDefaultParameterValues["it:skip"] = $true
} else {
$pssession = New-RemoteSession
Invoke-Command -Session $pssession -ScriptBlock { $env:PSModulePath += ";${using:testdrive}" }
Invoke-Command -Session $pssession -Scriptblock { $env:PSModulePath += ";${using:testdrive}" }
# pending https://github.com/PowerShell/PowerShell/issues/4819
# $cimsession = New-RemoteSession -CimSession
$null = New-Item -ItemType Directory -Path $modulePath

View File

@ -51,7 +51,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -contains Value' {
$Result = $Computers | Where-Object Drives -contains 'D'
$Result = $Computers | Where-Object Drives -Contains 'D'
$Result | Should -HaveCount 2
}
@ -63,7 +63,7 @@ Describe "Where-Object" -Tags "CI" {
It 'Where-Object $Array -in Prop' {
$Array = 'SPC-1234','BGP-5678'
$Result = $Computers | Where-Object ComputerName -in $Array
$Result = $Computers | Where-Object ComputerName -In $Array
$Result | Should -HaveCount 2
}
@ -73,7 +73,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -ge 2' {
$Result = $Computers | Where-Object NumberOfCores -ge 2
$Result = $Computers | Where-Object NumberOfCores -GE 2
$Result | Should -HaveCount 2
}
@ -83,7 +83,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -gt 2' {
$Result = $Computers | Where-Object NumberOfCores -gt 2
$Result = $Computers | Where-Object NumberOfCores -GT 2
$Result | Should -HaveCount 1
}
@ -93,7 +93,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -le 2' {
$Result = $Computers | Where-Object NumberOfCores -le 2
$Result = $Computers | Where-Object NumberOfCores -LE 2
$Result | Should -HaveCount 2
}
@ -103,7 +103,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -lt 2' {
$Result = $Computers | Where-Object NumberOfCores -lt 2
$Result = $Computers | Where-Object NumberOfCores -LT 2
$Result | Should -HaveCount 1
}
@ -113,7 +113,7 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -like Value' {
$Result = $Computers | Where-Object ComputerName -like 'MGC-9101'
$Result = $Computers | Where-Object ComputerName -Like 'MGC-9101'
$Result | Should -HaveCount 1
}
@ -123,13 +123,13 @@ Describe "Where-Object" -Tags "CI" {
}
It 'Where-Object Prop -like Value' {
$Result = $Computers | Where-Object ComputerName -match '^MGC.+'
$Result = $Computers | Where-Object ComputerName -Match '^MGC.+'
$Result | Should -HaveCount 1
}
It 'Where-Object should handle dynamic (DLR) objects' {
$dynObj = [TestDynamic]::new()
$Result = $dynObj, $dynObj | Where-Object FooProp -eq 123
$Result = $dynObj, $dynObj | Where-Object FooProp -EQ 123
$Result | Should -HaveCount 2
$Result[0] | Should -Be $dynObj
$Result[1] | Should -Be $dynObj
@ -137,7 +137,7 @@ Describe "Where-Object" -Tags "CI" {
It 'Where-Object should handle dynamic (DLR) objects, even without property name hint' {
$dynObj = [TestDynamic]::new()
$Result = $dynObj, $dynObj | Where-Object HiddenProp -eq 789
$Result = $dynObj, $dynObj | Where-Object HiddenProp -EQ 789
$Result | Should -HaveCount 2
$Result[0] | Should -Be $dynObj
$Result[1] | Should -Be $dynObj

View File

@ -15,12 +15,12 @@ Describe 'Get-WinEvent' -Tags "CI" {
}
Context "Get-WinEvent ListProvider parameter" {
It 'Get-WinEvent can list the providers' {
$result = Get-WinEvent -listprovider * -erroraction ignore
$result = Get-WinEvent -ListProvider * -ErrorAction ignore
$result | Should -Not -BeNullOrEmpty
}
It 'Get-WinEvent can get a provider by name' {
$providers = Get-WinEvent -listprovider MSI* -erroraction ignore
$result = Get-WinEvent -listprovider ($providers[0].name)
$providers = Get-WinEvent -ListProvider MSI* -ErrorAction ignore
$result = Get-WinEvent -ListProvider ($providers[0].name)
$result | Should -Not -BeNullOrEmpty
}
@ -30,9 +30,9 @@ Describe 'Get-WinEvent' -Tags "CI" {
BeforeAll {
if ( ! $IsWindows ) { return }
$foundEvents = $false
$providers = Get-WinEvent -listprovider * -erroraction ignore
$providers = Get-WinEvent -ListProvider * -ErrorAction ignore
foreach($provider in $providers) {
$events = Get-WinEvent -provider $provider.name -erroraction ignore
$events = Get-WinEvent -provider $provider.name -ErrorAction ignore
if ( $events.Count -gt 2 ) {
$providerForTests = $provider
$foundEvents = $true
@ -48,17 +48,17 @@ Describe 'Get-WinEvent' -Tags "CI" {
}
}
It 'Get-WinEvent can get events via logname' {
$results = get-winevent -logname $providerForTests.LogLinks.LogName -MaxEvents 10
$results = Get-WinEvent -LogName $providerForTests.LogLinks.LogName -MaxEvents 10
$results | Should -Not -BeNullOrEmpty
}
It 'Throw if count of lognames exceeds Windows API limit' {
if ([System.Environment]::OSVersion.Version.Major -ge 10) {
{ get-winevent -logname * } | Should -Throw -ErrorId "LogCountLimitExceeded,Microsoft.PowerShell.Commands.GetWinEventCommand"
{ Get-WinEvent -LogName * } | Should -Throw -ErrorId "LogCountLimitExceeded,Microsoft.PowerShell.Commands.GetWinEventCommand"
}
}
It 'Get-WinEvent can use the simplest of filters' {
$filter = @{ ProviderName = $providerForTests.Name }
$testEvents = Get-WinEvent -filterhashtable $filter
$testEvents = Get-WinEvent -FilterHashtable $filter
$testEventDict = [System.Collections.Generic.Dictionary[int, System.Diagnostics.Eventing.Reader.EventLogRecord]]::new()
foreach ($te in $testEvents)
@ -78,21 +78,21 @@ Describe 'Get-WinEvent' -Tags "CI" {
}
It 'Get-WinEvent can use a filter which includes two items' {
$filter = @{ ProviderName = $providerForTests.Name; Id = $events[0].Id}
$results = Get-WinEvent -filterHashtable $filter
$results = Get-WinEvent -FilterHashtable $filter
$results | Should -Not -BeNullOrEmpty
}
It 'Get-WinEvent can retrieve event via XmlQuery' {
$level = $events[0].Level
$logname = $providerForTests.loglinks.logname
$filter = "<QueryList><Query><Select Path='${logname}'>*[System[Level=${level}]]</Select></Query></QueryList>"
$results = Get-WinEvent -filterXml $filter -max 3
$results = Get-WinEvent -FilterXml $filter -max 3
$results | Should -Not -BeNullOrEmpty
}
It 'Get-WinEvent can retrieve event via XPath' {
$level = $events[0].Level
$logname = $providerForTests.loglinks.logname
$xpathFilter = "*[System[Level=$level]]"
$results = Get-WinEvent -logname $logname -filterXPath $xpathFilter -max 3
$results = Get-WinEvent -LogName $logname -FilterXPath $xpathFilter -max 3
$results | Should -Not -BeNullOrEmpty
}
@ -112,7 +112,7 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = @{ path = "$eventLogFile"; Param2 = "Windows x64"}
$results = Get-WinEvent -filterHashtable $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -FilterHashtable $filter -ErrorAction silentlycontinue
@($results).Count | Should -Be 1
$results.RecordId | Should -Be 10
}
@ -121,7 +121,7 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = @{ path = "$eventLogFile"; DriverName = "Remote Desktop Easy Print", "Microsoft enhanced Point and Print compatibility driver" }
$results = Get-WinEvent -filterHashtable $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -FilterHashtable $filter -ErrorAction silentlycontinue
@($results).Count | Should -Be 2
($results.RecordId -contains 9) | Should -BeTrue
($results.RecordId -contains 11) | Should -BeTrue
@ -131,7 +131,7 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = @{ path = "$eventLogFile"; PackageAware="Not package aware"; DriverName = "Remote Desktop Easy Print", "Microsoft enhanced Point and Print compatibility driver" }
$results = Get-WinEvent -filterHashtable $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -FilterHashtable $filter -ErrorAction silentlycontinue
@($results).Count | Should -Be 2
($results.RecordId -contains 9) | Should -BeTrue
($results.RecordId -contains 11) | Should -BeTrue
@ -141,7 +141,7 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = "*/UserData/*/Param2='Windows x64'"
$results = Get-WinEvent -path $eventLogFile -filterXPath $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -Path $eventLogFile -FilterXPath $filter -ErrorAction silentlycontinue
@($results).Count | Should -Be 1
$results.RecordId | Should -Be 10
}
@ -152,9 +152,9 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = @{ path = "$eventLogFile"}
$results = Get-WinEvent -filterHashtable $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -FilterHashtable $filter -ErrorAction silentlycontinue
$filterSuppress = @{ path = "$eventLogFile"; SuppressHashFilter=@{Id=370}}
$resultsSuppress = Get-WinEvent -filterHashtable $filterSuppress -ErrorAction silentlycontinue
$resultsSuppress = Get-WinEvent -FilterHashtable $filterSuppress -ErrorAction silentlycontinue
@($results).Count | Should -Be 3
@($resultsSuppress).Count | Should -Be 2
}
@ -163,9 +163,9 @@ Describe 'Get-WinEvent' -Tags "CI" {
# the provided log file has been edited to remove MS PII, so we must use -ErrorAction silentlycontinue
$eventLogFile = [io.path]::Combine($PSScriptRoot, "assets", "Saved-Events.evtx")
$filter = @{ path = "$eventLogFile"}
$results = Get-WinEvent -filterHashtable $filter -ErrorAction silentlycontinue
$results = Get-WinEvent -FilterHashtable $filter -ErrorAction silentlycontinue
$filterSuppress = @{ path = "$eventLogFile"; SuppressHashFilter=@{Param2 = "Windows x64"}}
$resultsSuppress = Get-WinEvent -filterHashtable $filterSuppress -ErrorAction silentlycontinue
$resultsSuppress = Get-WinEvent -FilterHashtable $filterSuppress -ErrorAction silentlycontinue
@($results).Count | Should -Be 3
@($resultsSuppress).Count | Should -Be 2
}

View File

@ -22,7 +22,7 @@ Describe 'New-WinEvent' -Tags "CI" {
It 'Simple New-WinEvent without any payload' {
New-WinEvent -ProviderName $ProviderName -Id $SimpleEventId -Version 1
$filter = @{ ProviderName = $ProviderName; Id = $SimpleEventId}
(Get-WinEvent -filterHashtable $filter).Count | Should -BeGreaterThan 0
(Get-WinEvent -FilterHashtable $filter).Count | Should -BeGreaterThan 0
}
It 'No provider found error' {
@ -42,7 +42,7 @@ Describe 'New-WinEvent' -Tags "CI" {
}
It 'PayloadMismatch error' {
$logPath = join-path $TestDrive 'testlog1.txt'
$logPath = Join-Path $TestDrive 'testlog1.txt'
# this will print the warning with expected event template to the file
New-WinEvent -ProviderName $ProviderName -Id $ComplexEventId *> $logPath
Get-Content $logPath -Raw | Should -Match 'data name="FragmentPayload"'

View File

@ -222,7 +222,7 @@ try {
It "Errors on adding nonexistent user to group" {
$sb = {
Add-LocalGroupMember -name TestGroup1 -Member TestNonexistentUser1
Add-LocalGroupMember -Name TestGroup1 -Member TestNonexistentUser1
}
VerifyFailingTest $sb "PrincipalNotFound,Microsoft.PowerShell.Commands.AddLocalGroupMemberCommand"
}

View File

@ -6,9 +6,9 @@
return
Set-Variable dateInFuture -option Constant -value "12/12/2036 09:00"
Set-Variable dateInPast -option Constant -value "12/12/2010 09:00"
Set-Variable dateInvalid -option Constant -value "12/12/2016 25:00"
Set-Variable dateInFuture -Option Constant -Value "12/12/2036 09:00"
Set-Variable dateInPast -Option Constant -Value "12/12/2010 09:00"
Set-Variable dateInvalid -Option Constant -Value "12/12/2016 25:00"
function RemoveTestUsers
{
@ -66,7 +66,7 @@ try {
Describe "Verify Expected LocalUser Aliases are present" -Tags @('CI', 'RequireAdminOnWindows') {
It "Test command presence" {
$result = get-alias | ForEach-Object { if ($_.Source -eq "Microsoft.PowerShell.LocalAccounts") {$_}}
$result = Get-Alias | ForEach-Object { if ($_.Source -eq "Microsoft.PowerShell.LocalAccounts") {$_}}
$result.Name -contains "algm" | Should -BeTrue
$result.Name -contains "dlu" | Should -BeTrue
@ -328,7 +328,7 @@ try {
It "Errors when Password is an empty string" {
$sb = {
New-LocalUser TestUserNew1 -Password (ConvertTo-SecureString "" -Asplaintext -Force)
New-LocalUser TestUserNew1 -Password (ConvertTo-SecureString "" -AsPlainText -Force)
}
VerifyFailingTest $sb "ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand"
}
@ -375,7 +375,7 @@ try {
It "Can set PasswordNeverExpires to create a user with null for PasswordExpires date" {
#[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Demo/doc/test secret.")]
$result = New-LocalUser TestUserNew1 -Password (ConvertTo-SecureString "p@ssw0rd" -Asplaintext -Force) -PasswordNeverExpires
$result = New-LocalUser TestUserNew1 -Password (ConvertTo-SecureString "p@ssw0rd" -AsPlainText -Force) -PasswordNeverExpires
$result.Name | Should -BeExactly TestUserNew1
$result.PasswordExpires | Should -BeNullOrEmpty
@ -750,21 +750,21 @@ try {
It "Errors when Password is an empty string" {
$sb = {
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString "" -Asplaintext -Force)
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString "" -AsPlainText -Force)
}
VerifyFailingTest $sb "ParameterArgumentValidationErrorEmptyStringNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand"
}
It "Errors when Password is null" {
$sb = {
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString $null -Asplaintext -Force)
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString $null -AsPlainText -Force)
}
VerifyFailingTest $sb "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ConvertToSecureStringCommand"
}
It "Can set Password value at max 256" {
#[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Demo/doc/test secret.")]
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString ("123@"+"A"*252) -asplaintext -Force)
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString ("123@"+"A"*252) -AsPlainText -Force)
$result = Get-LocalUser -Name TestUserSet1
$result.Name | Should -BeExactly TestUserSet1
@ -775,14 +775,14 @@ try {
It "Errors when Password over max 257" {
$sb = {
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString ("A"*257) -asplaintext -Force) -ErrorAction Stop
Set-LocalUser -Name TestUserSet1 -Password (ConvertTo-SecureString ("A"*257) -AsPlainText -Force) -ErrorAction Stop
}
VerifyFailingTest $sb "InvalidPassword,Microsoft.PowerShell.Commands.SetLocalUserCommand"
}
It 'Can use PasswordNeverExpires:$true to null a PasswordExpires date' {
#[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Demo/doc/test secret.")]
$user = New-LocalUser TestUserSet2 -Password (ConvertTo-SecureString "p@ssw0rd" -Asplaintext -Force)
$user = New-LocalUser TestUserSet2 -Password (ConvertTo-SecureString "p@ssw0rd" -AsPlainText -Force)
$user | Set-LocalUser -PasswordNeverExpires:$true
$result = Get-LocalUser TestUserSet2
@ -792,7 +792,7 @@ try {
It 'Can use PasswordNeverExpires:$false to activate a PasswordExpires date' {
#[SuppressMessage("Microsoft.Security", "CS002:SecretInNextLine", Justification="Demo/doc/test secret.")]
$user = New-LocalUser TestUserSet2 -Password (ConvertTo-SecureString "p@ssw0rd" -Asplaintext -Force) -PasswordNeverExpires
$user = New-LocalUser TestUserSet2 -Password (ConvertTo-SecureString "p@ssw0rd" -AsPlainText -Force) -PasswordNeverExpires
$user | Set-LocalUser -PasswordNeverExpires:$false
$result = Get-LocalUser TestUserSet2

View File

@ -76,7 +76,7 @@ Describe "Extended Alias Provider Tests" -Tags "Feature" {
It "Verifying Whatif" {
$before = (Get-Item -Path "Alias:\${testAliasName}").Definition
Set-Item -Path "Alias:\${testAliasName}" -Value "Get-Location" -Whatif
Set-Item -Path "Alias:\${testAliasName}" -Value "Get-Location" -WhatIf
$after = (Get-Item -Path "Alias:\${testAliasName}").Definition
$after | Should -BeExactly $before # Definition should not have changed
}

View File

@ -65,7 +65,7 @@ Describe "Clear-Content cmdlet tests" -Tags "CI" {
}
# we could suppress the WhatIf output here if we use the testhost, but it's not necessary
It "The filesystem provider supports should process" -skip:(!$IsWindows) {
It "The filesystem provider supports should process" -Skip:(!$IsWindows) {
Clear-Content -Path TestDrive:\$file2 -WhatIf
"TestDrive:\$file2" | Should -FileContentMatch "This is content"
}
@ -75,7 +75,7 @@ Describe "Clear-Content cmdlet tests" -Tags "CI" {
$cci.SupportsShouldProcess | Should -BeTrue
}
It "Alternate streams should be cleared with clear-content" -skip:(!$IsWindows) {
It "Alternate streams should be cleared with clear-content" -Skip:(!$IsWindows) {
# make sure that the content is correct
# this is here rather than BeforeAll because only windows can write to an alternate stream
Set-Content -Path "TestDrive:/$file3" -Stream $streamName -Value $streamContent

View File

@ -14,7 +14,7 @@ Describe "Clear-EventLog cmdlet tests" -Tags @('CI', 'RequireAdminOnWindows') {
It "should be able to Clear-EventLog" -Pending:($true) {
Remove-EventLog -LogName TestLog -ErrorAction Ignore
{ New-EventLog -LogName TestLog -Source TestSource -ErrorAction Stop } | Should -Not -Throw
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop } | Should -Not -Throw
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop } | Should -Not -Throw
{ Get-EventLog -LogName TestLog } | Should -Not -Throw
$result = Get-EventLog -LogName TestLog
$result.Count | Should -Be 1

View File

@ -84,11 +84,11 @@ Describe "Control Service cmdlet tests" -Tags "Feature","RequireAdminOnWindows"
@{script={Stop-Service dcomlaunch -ErrorAction Stop};errorid="ServiceHasDependentServices,Microsoft.PowerShell.Commands.StopServiceCommand"},
@{script={Suspend-Service winrm -ErrorAction Stop};errorid="CouldNotSuspendServiceNotSupported,Microsoft.PowerShell.Commands.SuspendServiceCommand"},
@{script={Resume-Service winrm -ErrorAction Stop};errorid="CouldNotResumeServiceNotSupported,Microsoft.PowerShell.Commands.ResumeServiceCommand"},
@{script={Stop-Service $(new-guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StopServiceCommand"},
@{script={Start-Service $(new-guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StartServiceCommand"},
@{script={Resume-Service $(new-guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.ResumeServiceCommand"},
@{script={Suspend-Service $(new-guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.SuspendServiceCommand"},
@{script={Restart-Service $(new-guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.RestartServiceCommand"}
@{script={Stop-Service $(New-Guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StopServiceCommand"},
@{script={Start-Service $(New-Guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.StartServiceCommand"},
@{script={Resume-Service $(New-Guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.ResumeServiceCommand"},
@{script={Suspend-Service $(New-Guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.SuspendServiceCommand"},
@{script={Restart-Service $(New-Guid) -ErrorAction Stop};errorid="NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.RestartServiceCommand"}
) {
param($script,$errorid)
{ & $script } | Should -Throw -ErrorId $errorid

View File

@ -550,7 +550,7 @@ Describe "Validate Copy-Item Remotely" -Tags "CI" {
BeforeAll {
# Create test file.
$testFilePath = Join-Path "TestDrive:" "testfile.txt"
if (test-path $testFilePath)
if (Test-Path $testFilePath)
{
Remove-Item $testFilePath -Force -ErrorAction SilentlyContinue
}

View File

@ -703,8 +703,8 @@ Describe "Hard link and symbolic link tests" -Tags "CI", "RequireAdminOnWindows"
$link = Join-Path $TestDrive "sym-to-folder"
New-Item -ItemType Directory -Path $folder > $null
New-Item -ItemType File -Path $file -Value "some content" > $null
New-Item -ItemType SymbolicLink -Path $link -value $folder > $null
$childA = Get-Childitem $folder
New-Item -ItemType SymbolicLink -Path $link -Value $folder > $null
$childA = Get-ChildItem $folder
Remove-Item -Path $link -Recurse
$childB = Get-ChildItem $folder
$childB.Count | Should -Be 1
@ -983,7 +983,7 @@ Describe "Extended FileSystem Item/Content Cmdlet Provider Tests" -Tags "Feature
}
It "Verify Filter" {
$result = Get-Item -Path "TestDrive:\*" -filter "*2.txt"
$result = Get-Item -Path "TestDrive:\*" -Filter "*2.txt"
$result.Name | Should -BeExactly $testFile2
}
@ -1085,7 +1085,7 @@ Describe "Extended FileSystem Item/Content Cmdlet Provider Tests" -Tags "Feature
}
It "Verify Include and Exclude Intersection" {
Remove-Item "TestDrive:\*" -Include "*.txt" -exclude "*2*"
Remove-Item "TestDrive:\*" -Include "*.txt" -Exclude "*2*"
$file1 = Get-Item $testFile -ErrorAction SilentlyContinue
$file2 = Get-Item $testFile2 -ErrorAction SilentlyContinue
$file1 | Should -BeNullOrEmpty

View File

@ -83,7 +83,7 @@ Describe "Get-ChildItem" -Tags "CI" {
}
It "Should have all the proper fields and be populated" {
$var = Get-Childitem .
$var = Get-ChildItem .
$var.Name.Length | Should -BeGreaterThan 0
$var.Mode.Length | Should -BeGreaterThan 0
@ -92,7 +92,7 @@ Describe "Get-ChildItem" -Tags "CI" {
}
It "Should have mode property populated for protected files on Windows" -Skip:(!$IsWindows) {
$files = Get-Childitem -Force ~\NT*
$files = Get-ChildItem -Force ~\NT*
$files.Count | Should -BeGreaterThan 0
foreach ($file in $files)
{
@ -110,14 +110,14 @@ Describe "Get-ChildItem" -Tags "CI" {
}
It "Should list hidden files as well when 'Force' parameter is used" {
$files = Get-ChildItem -path $TestDrive -Force
$files = Get-ChildItem -Path $TestDrive -Force
$files | Should -Not -BeNullOrEmpty
$files.Count | Should -Be 6
$files.Name.Contains($item_F) | Should -BeTrue
}
It "Should list only hidden files when 'Hidden' parameter is used" {
$files = Get-ChildItem -path $TestDrive -Hidden
$files = Get-ChildItem -Path $TestDrive -Hidden
$files | Should -Not -BeNullOrEmpty
$files.Count | Should -Be 1
$files[0].Name | Should -BeExactly $item_F
@ -170,7 +170,7 @@ Describe "Get-ChildItem" -Tags "CI" {
# VSTS machines don't have a page file
It "Should give .sys file if the fullpath is specified with hidden and force parameter" -Pending {
# Don't remove!!! It is special test for hidden and opened file with exclusive lock.
$file = Get-ChildItem -path "$env:SystemDrive\\pagefile.sys" -Hidden
$file = Get-ChildItem -Path "$env:SystemDrive\\pagefile.sys" -Hidden
$file | Should -Not -Be $null
$file.Count | Should -Be 1
$file.Name | Should -Be "pagefile.sys"
@ -217,7 +217,7 @@ Describe "Get-ChildItem" -Tags "CI" {
$env:__FOODBAR = 'food'
$env:__foodbar = 'bar'
$foodbar = Get-Childitem env: | Where-Object {$_.Name -eq '__foodbar'}
$foodbar = Get-ChildItem env: | Where-Object {$_.Name -eq '__foodbar'}
$count = if ($IsWindows) { 1 } else { 2 }
($foodbar | Measure-Object).Count | Should -Be $count
}

View File

@ -472,7 +472,7 @@ public static extern int LCIDToLocaleName(uint localeID, System.Text.StringBuild
{
$hal = $null
$systemDirectory = Get-CimClassPropVal Win32_OperatingSystem SystemDirectory
$halPath = Join-Path -path $systemDirectory -ChildPath "hal.dll"
$halPath = Join-Path -Path $systemDirectory -ChildPath "hal.dll"
$query = 'SELECT * FROM CIM_DataFile Where Name="C:\WINDOWS\system32\hal.dll"'
$query = $query -replace '\\','\\'
$instance = Get-CimInstance -Query $query
@ -1049,7 +1049,7 @@ try {
$ObservedList = $ComputerInformation.$property
$ExpectedList = $Expected.$property
$SpecialPropertyList = ($ObservedList)[0].psobject.properties.name
Compare-Object $ObservedList $ExpectedList -property $SpecialPropertyList | Should -BeNullOrEmpty
Compare-Object $ObservedList $ExpectedList -Property $SpecialPropertyList | Should -BeNullOrEmpty
}
else
{

View File

@ -28,7 +28,7 @@ Describe "Get-EventLog cmdlet tests" -Tags @('CI', 'RequireAdminOnWindows') {
$logs.Count | Should -BeGreaterThan 3
}
It "should be able to Get-EventLog -LogName Application -Newest 100" -Pending:($true) {
{ $result=get-eventlog -LogName Application -Newest 100 -ErrorAction Stop } | Should -Not -Throw
{ $result=Get-EventLog -LogName Application -Newest 100 -ErrorAction Stop } | Should -Not -Throw
$result | Should -Not -BeNullOrEmpty
$result.Length | Should -BeLessThan 100
$result[0] | Should -BeOfType EventLogEntry
@ -37,7 +37,7 @@ Describe "Get-EventLog cmdlet tests" -Tags @('CI', 'RequireAdminOnWindows') {
{ Get-EventLog -LogName System -List -ErrorAction Stop } | Should -Throw -ErrorId "AmbiguousParameterSet,Microsoft.PowerShell.Commands.GetEventLogCommand"
}
It "should be able to Get-EventLog -LogName * with multiple matches" -Pending:($true) {
{ $result=get-eventlog -LogName * -ErrorAction Stop } | Should -Not -Throw
{ $result=Get-EventLog -LogName * -ErrorAction Stop } | Should -Not -Throw
$result | Should -Not -BeNullOrEmpty
$result | Should -BeExactly "Security"
$result.Count | Should -BeGreaterThan 3

View File

@ -60,7 +60,7 @@ Describe "Get-HotFix Tests" -Tag CI {
}
It "Get-Hotfix can accept ComputerName via pipeline" {
{ [PSCustomObject]@{ComputerName = 'UnavailableComputer'} | Get-HotFix } | Should -Throw -ErrorID 'Microsoft.PowerShell.Commands.GetHotFixCommand'
{ [PSCustomObject]@{ComputerName = 'UnavailableComputer'} | Get-HotFix } | Should -Throw -ErrorId 'Microsoft.PowerShell.Commands.GetHotFixCommand'
[PSCustomObject]@{ComputerName = 'localhost'} | Get-HotFix | Should -Not -BeNullOrEmpty
}
}

View File

@ -31,13 +31,13 @@ Describe "Get-Item" -Tags "CI" {
$null = New-Item -type file "$TESTDRIVE/file[abc].txt"
$null = New-Item -type file "$TESTDRIVE/filea.txt"
# if literalpath is not correct we would see filea.txt
$item = Get-Item -literalpath "$TESTDRIVE/file[abc].txt"
$item = Get-Item -LiteralPath "$TESTDRIVE/file[abc].txt"
@($item).Count | Should -Be 1
$item.Name | Should -BeExactly 'file[abc].txt'
}
It "Should have mode flags set" {
Get-ChildItem $PSScriptRoot | foreach-object { $_.Mode | Should -Not -BeNullOrEmpty }
Get-ChildItem $PSScriptRoot | ForEach-Object { $_.Mode | Should -Not -BeNullOrEmpty }
}
It "Should not return the item unless force is used if hidden" {
@ -48,11 +48,11 @@ Describe "Get-Item" -Tags "CI" {
}
${result} = Get-Item "${hiddenFile}" -ErrorAction SilentlyContinue
${result} | Should -BeNullOrEmpty
${result} = Get-Item -force "${hiddenFile}" -ErrorAction SilentlyContinue
${result} = Get-Item -Force "${hiddenFile}" -ErrorAction SilentlyContinue
${result}.FullName | Should -BeExactly ${item}.FullName
}
It "Should get properties for special reparse points" -skip:$skipNotWindows {
It "Should get properties for special reparse points" -Skip:$skipNotWindows {
$result = Get-Item -Path $HOME/Cookies -Force
$result.LinkType | Should -BeExactly "Junction"
$result.Target | Should -Not -BeNullOrEmpty
@ -89,7 +89,7 @@ Describe "Get-Item" -Tags "CI" {
$result.Name | Should -BeExactly "file2.txt"
}
It "Should respect combinations of filter, include, and exclude" {
$result = get-item "${testBaseDir}/*" -filter *.txt -include "file[12].txt" -exclude file2.txt
$result = Get-Item "${testBaseDir}/*" -Filter *.txt -Include "file[12].txt" -Exclude file2.txt
($result).Count | Should -Be 1
$result.Name | Should -BeExactly "file1.txt"
}
@ -114,10 +114,10 @@ Describe "Get-Item" -Tags "CI" {
$altStreamPath = "$TESTDRIVE/altStream.txt"
$stringData = "test data"
$streamName = "test"
$item = new-item -type file $altStreamPath
Set-Content -path $altStreamPath -Stream $streamName -Value $stringData
$item = New-Item -type file $altStreamPath
Set-Content -Path $altStreamPath -Stream $streamName -Value $stringData
}
It "Should find an alternate stream if present" -skip:$skipNotWindows {
It "Should find an alternate stream if present" -Skip:$skipNotWindows {
$result = Get-Item $altStreamPath -Stream $streamName
$result.Length | Should -Be ($stringData.Length + [Environment]::NewLine.Length)
$result.Stream | Should -Be $streamName
@ -125,13 +125,13 @@ Describe "Get-Item" -Tags "CI" {
}
Context "Registry Provider" {
It "Can retrieve an item from registry" -skip:$skipNotWindows {
It "Can retrieve an item from registry" -Skip:$skipNotWindows {
${result} = Get-Item HKLM:/Software
${result} | Should -BeOfType Microsoft.Win32.RegistryKey
}
}
Context "Environment provider" -tag "CI" {
Context "Environment provider" -Tag "CI" {
BeforeAll {
$env:testvar="b"
$env:testVar="a"
@ -143,7 +143,7 @@ Describe "Get-Item" -Tags "CI" {
}
It "get-item testVar" {
(get-item env:\testVar).Value | Should -BeExactly "a"
(Get-Item env:\testVar).Value | Should -BeExactly "a"
}
It "get-item is case-sensitive/insensitive as appropriate" {
@ -153,7 +153,7 @@ Describe "Get-Item" -Tags "CI" {
$expectedValue = "a"
}
(get-item env:\testvar).Value | Should -BeExactly $expectedValue
(Get-Item env:\testvar).Value | Should -BeExactly $expectedValue
}
}
}
@ -165,7 +165,7 @@ Describe "Get-Item environment provider on Windows with accidental case-variant
AfterAll {
$env:testVar = $null
}
It "Reports the effective value among accidental case-variant duplicates on Windows" -skip:$skipNotWindows {
It "Reports the effective value among accidental case-variant duplicates on Windows" -Skip:$skipNotWindows {
if (-not (Get-Command -ErrorAction Ignore node.exe)) {
Write-Warning "Test skipped, because prerequisite Node.js is not installed."
} else {

View File

@ -7,7 +7,7 @@ Describe "Get-Location" -Tags "CI" {
}
AfterEach {
Pop-location
Pop-Location
}
It "Should list the output of the current working directory" {

View File

@ -50,7 +50,7 @@ Describe "Get-Process" -Tags "CI" {
}
It "Should have not empty Name flags set for Get-Process object" -Pending:$IsMacOS {
$ps | foreach-object { $_.Name | Should -Not -BeNullOrEmpty }
$ps | ForEach-Object { $_.Name | Should -Not -BeNullOrEmpty }
}
It "Should throw an error for non existing process id." {
@ -59,7 +59,7 @@ Describe "Get-Process" -Tags "CI" {
}
It "Should throw an exception when process id is null." {
{ Get-Process -id $null } | Should -Throw -ErrorId "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetProcessCommand"
{ Get-Process -Id $null } | Should -Throw -ErrorId "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.GetProcessCommand"
}
It "Should throw an exception when -InputObject parameter is null." {
@ -118,12 +118,12 @@ Describe "Get-Process Formatting" -Tags "Feature" {
Describe "Process Parent property" -Tags "CI" {
It "Has Parent process property" {
$powershellexe = (get-process -id $PID).mainmodule.filename
$powershellexe = (Get-Process -Id $PID).mainmodule.filename
& $powershellexe -noprofile -command '(Get-Process -Id $PID).Parent' | Should -Not -BeNullOrEmpty
}
It "Has valid parent process ID property" {
$powershellexe = (get-process -id $PID).mainmodule.filename
$powershellexe = (Get-Process -Id $PID).mainmodule.filename
& $powershellexe -noprofile -command '(Get-Process -Id $PID).Parent.Id' | Should -Be $PID
}
}

View File

@ -55,10 +55,10 @@ Describe "Get-Service cmdlet tests" -Tags "CI" {
@{ script = { Get-Service -DisplayName Net* } ; expected = { Get-Service | Where-Object { $_.DisplayName -like 'Net*' } } },
@{ script = { Get-Service -Include Net* -Exclude *logon } ; expected = { Get-Service | Where-Object { $_.Name -match '^net.*?(?<!logon)$' } } }
@{ script = { Get-Service -Name Net* | Get-Service } ; expected = { Get-Service -Name Net* } },
@{ script = { Get-Service -Name "$(new-guid)*" } ; expected = $null },
@{ script = { Get-Service -DisplayName "$(new-guid)*" } ; expected = $null },
@{ script = { Get-Service -Name "$(New-Guid)*" } ; expected = $null },
@{ script = { Get-Service -DisplayName "$(New-Guid)*" } ; expected = $null },
@{ script = { Get-Service -DependentServices -Name winmgmt }; expected = { (Get-Service -Name winmgmt).DependentServices } },
@{ script = { Get-Service -RequiredServices -Name winmgmt } ; expected = { (Get-Service -name winmgmt).RequiredServices } }
@{ script = { Get-Service -RequiredServices -Name winmgmt } ; expected = { (Get-Service -Name winmgmt).RequiredServices } }
) {
param($script, $expected)
$services = & $script
@ -66,16 +66,16 @@ Describe "Get-Service cmdlet tests" -Tags "CI" {
$servicesCheck = & $expected
}
if ($servicesCheck -ne $null) {
Compare-object $services $servicesCheck | Out-String | Should -BeNullOrEmpty
Compare-Object $services $servicesCheck | Out-String | Should -BeNullOrEmpty
} else {
$services | Should -BeNullOrEmpty
}
}
It "Get-Service fails for non-existing service using '<script>'" -TestCases @(
@{ script = { Get-Service -Name (new-guid) -ErrorAction Stop} ;
@{ script = { Get-Service -Name (New-Guid) -ErrorAction Stop} ;
ErrorId = "NoServiceFoundForGivenName,Microsoft.PowerShell.Commands.GetServiceCommand" },
@{ script = { Get-Service -DisplayName (new-guid) -ErrorAction Stop};
@{ script = { Get-Service -DisplayName (New-Guid) -ErrorAction Stop};
ErrorId = "NoServiceFoundForGivenDisplayName,Microsoft.PowerShell.Commands.GetServiceCommand" }
) {
param($script,$errorid)

View File

@ -2,20 +2,20 @@
# Licensed under the MIT License.
Describe "Simple ItemProperty Tests" -Tag "CI" {
It "Can retrieve the PropertyValue with Get-ItemPropertyValue" {
Get-ItemPropertyValue -path $TESTDRIVE -Name Attributes | Should -Be "Directory"
Get-ItemPropertyValue -Path $TESTDRIVE -Name Attributes | Should -Be "Directory"
}
It "Can clear the PropertyValue with Clear-ItemProperty" {
setup -f file1.txt
Setup -f file1.txt
Set-ItemProperty $TESTDRIVE/file1.txt -Name Attributes -Value ReadOnly
Get-ItemPropertyValue -path $TESTDRIVE/file1.txt -Name Attributes | Should -Match "ReadOnly"
Get-ItemPropertyValue -Path $TESTDRIVE/file1.txt -Name Attributes | Should -Match "ReadOnly"
Clear-ItemProperty $TESTDRIVE/file1.txt -Name Attributes
Get-ItemPropertyValue -path $TESTDRIVE/file1.txt -Name Attributes | Should -Not -Match "ReadOnly"
Get-ItemPropertyValue -Path $TESTDRIVE/file1.txt -Name Attributes | Should -Not -Match "ReadOnly"
}
# these cmdlets are targeted at the windows registry, and don't have an linux equivalent
Context "Registry targeted cmdlets" {
It "Copy ItemProperty" -pending { }
It "Move ItemProperty" -pending { }
It "New ItemProperty" -pending { }
It "Rename ItemProperty" -pending { }
It "Copy ItemProperty" -Pending { }
It "Move ItemProperty" -Pending { }
It "New ItemProperty" -Pending { }
It "Rename ItemProperty" -Pending { }
}
}

View File

@ -10,20 +10,20 @@ Describe "Join-Path cmdlet tests" -Tags "CI" {
}
It "should output multiple paths when called with multiple -Path targets" {
Setup -Dir SubDir1
(Join-Path -Path TestDrive:,$TestDrive -ChildPath "SubDir1" -resolve).Length | Should -Be 2
(Join-Path -Path TestDrive:,$TestDrive -ChildPath "SubDir1" -Resolve).Length | Should -Be 2
}
It "should throw 'DriveNotFound' when called with -Resolve and drive does not exist" {
{ Join-Path bogusdrive:\\somedir otherdir -resolve -ErrorAction Stop; Throw "Previous statement unexpectedly succeeded..." } |
{ Join-Path bogusdrive:\\somedir otherdir -Resolve -ErrorAction Stop; Throw "Previous statement unexpectedly succeeded..." } |
Should -Throw -ErrorId "DriveNotFound,Microsoft.PowerShell.Commands.JoinPathCommand"
}
It "should throw 'PathNotFound' when called with -Resolve and item does not exist" {
{ Join-Path "Bogus" "Path" -resolve -ErrorAction Stop; Throw "Previous statement unexpectedly succeeded..." } |
{ Join-Path "Bogus" "Path" -Resolve -ErrorAction Stop; Throw "Previous statement unexpectedly succeeded..." } |
Should -Throw -ErrorId "PathNotFound,Microsoft.PowerShell.Commands.JoinPathCommand"
}
#[BugId(BugDatabase.WindowsOutOfBandReleases, 905237)] Note: Result should be the same on non-Windows platforms too
It "should return one object when called with a Windows FileSystem::Redirector" {
set-location ("env:"+$SepChar)
$result=join-path FileSystem::windir system32
Set-Location ("env:"+$SepChar)
$result=Join-Path FileSystem::windir system32
$result.Count | Should -Be 1
$result | Should -BeExactly ("FileSystem::windir"+$SepChar+"system32")
}

View File

@ -3,10 +3,10 @@
Describe "Move-Item tests" -Tag "CI" {
BeforeAll {
$content = "This is content"
Setup -f originalfile.txt -content "This is content"
Setup -f originalfile.txt -Content "This is content"
$source = "$TESTDRIVE/originalfile.txt"
$target = "$TESTDRIVE/ItemWhichHasBeenMoved.txt"
Setup -f [orig-file].txt -content "This is not content"
Setup -f [orig-file].txt -Content "This is not content"
$sourceSp = "$TestDrive/``[orig-file``].txt"
$targetSpName = "$TestDrive/ItemWhichHasBeen[Moved].txt"
$targetSp = "$TestDrive/ItemWhichHasBeen``[Moved``].txt"

View File

@ -20,34 +20,34 @@ Describe "New-EventLog cmdlet tests" -Tags @('CI', 'RequireAdminOnWindows') {
It "should be able to create a New-EventLog with a -Source parameter" -Skip:($true) {
{New-EventLog -LogName TestLog -Source TestSource -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop} | Should -Not -Throw
$result=Get-EventLog -LogName TestLog
$result.Count | Should -Be 1
}
It "should be able to create a New-EventLog with a -ComputerName parameter" -Skip:($true) {
{New-EventLog -LogName TestLog -Source TestSource -ComputerName $env:COMPUTERNAME -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop} | Should -Not -Throw
$result=Get-EventLog -LogName TestLog
$result.Count | Should -Be 1
$result.EventID | Should -Be 1
}
It "should be able to create a New-EventLog with a -CategoryResourceFile parameter" -Skip:($true) {
{New-EventLog -LogName TestLog -Source TestSource -CategoryResourceFile "CategoryMessageFile" -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 2 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 2 -ErrorAction Stop} | Should -Not -Throw
$result=Get-EventLog -LogName TestLog
$result.Count | Should -Be 1
$result.EventID | Should -Be 2
}
It "should be able to create a New-EventLog with a -MessageResourceFile parameter" -Skip:($true) {
{New-EventLog -LogName TestLog -Source TestSource -MessageResourceFile "ResourceMessageFile" -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 3 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 3 -ErrorAction Stop} | Should -Not -Throw
$result=Get-EventLog -LogName TestLog
$result.Count | Should -Be 1
$result.EventID | Should -Be 3
}
It "should be able to create a New-EventLog with a -ParameterResourceFile parameter" -Skip:($true) {
{New-EventLog -LogName TestLog -Source TestSource -ParameterResourceFile "ParameterMessageFile" -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 4 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 4 -ErrorAction Stop} | Should -Not -Throw
$result=Get-EventLog -LogName TestLog
$result.Count | Should -Be 1
$result.EventID | Should -Be 4

View File

@ -17,11 +17,11 @@ Describe "Tests for New-PSDrive cmdlet." -Tag "CI","RequireAdminOnWindows" {
{ New-PSDrive -Name $PSDriveName -PSProvider FileSystem -Root $RemoteShare -Persist -ErrorAction Stop } | Should -Not -Throw
}
it "Should throw exception if root is not a remote share." -Skip:(-not $IsWindows) {
It "Should throw exception if root is not a remote share." -Skip:(-not $IsWindows) {
{ New-PSDrive -Name $PSDriveName -PSProvider FileSystem -Root "TestDrive:\" -Persist -ErrorAction Stop } | Should -Throw -ErrorId 'DriveRootNotNetworkPath'
}
it "Should throw exception if PSDrive is not a drive letter supported by operating system." -Skip:(-not $IsWindows) {
It "Should throw exception if PSDrive is not a drive letter supported by operating system." -Skip:(-not $IsWindows) {
$PSDriveName = 'AB'
{ New-PSDrive -Name $PSDriveName -PSProvider FileSystem -Root $RemoteShare -Persist -ErrorAction Stop } | Should -Throw -ErrorId 'DriveNameNotSupportedForPersistence'
}

View File

@ -97,7 +97,7 @@ Describe "Basic Registry Provider Tests" -Tags @("CI", "RequireAdminOnWindows")
It "Verify Rename-Item" {
$existBefore = Test-Path $testKey
$renamedKey = Rename-Item -path $testKey -NewName "RenamedKey" -PassThru
$renamedKey = Rename-Item -Path $testKey -NewName "RenamedKey" -PassThru
$existAfter = Test-Path $testKey
$existBefore | Should -BeTrue
$existAfter | Should -BeFalse
@ -260,13 +260,13 @@ Describe "Extended Registry Provider Tests" -Tags @("Feature", "RequireAdminOnWi
}
It "Verify Confirm can be bypassed" {
$result = New-ItemProperty -Path $testKey -Name $testPropertyName -Value $testPropertyValue -force -Confirm:$false
$result = New-ItemProperty -Path $testKey -Name $testPropertyName -Value $testPropertyValue -Force -Confirm:$false
$result."$testPropertyName" | Should -Be $testPropertyValue
$result.PSChildName | Should -BeExactly $testKey
}
It "Verify WhatIf" {
$result = New-ItemProperty -Path $testKey -Name $testPropertyName -Value $testPropertyValue -whatif
$result = New-ItemProperty -Path $testKey -Name $testPropertyName -Value $testPropertyValue -WhatIf
$result | Should -BeNullOrEmpty
}
}

View File

@ -16,19 +16,19 @@ Describe "New-EventLog cmdlet tests" -Tags @('CI', 'RequireAdminOnWindows') {
if ($IsNotSkipped) {
Remove-EventLog -LogName TestLog -ErrorAction Ignore
{New-EventLog -LogName TestLog -Source TestSource -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop} | Should -Not -Throw
{Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop} | Should -Not -Throw
}
}
#CmdLet is NYI - change to -Skip:($NonWinAdmin) when implemented
It "should be able to Remove-EventLog -LogName <string> -ComputerName <string>" -Pending:($true) {
{ Remove-EventLog -LogName TestLog -ComputerName $env:COMPUTERNAME -ErrorAction Stop } | Should -Not -Throw
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop } | Should -Throw -ErrorId "Microsoft.PowerShell.Commands.WriteEventLogCommand"
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop } | Should -Throw -ErrorId "Microsoft.PowerShell.Commands.WriteEventLogCommand"
{ Get-EventLog -LogName TestLog -ErrorAction Stop } | Should -Throw -ErrorId "System.InvalidOperationException,Microsoft.PowerShell.Commands.GetEventLogCommand"
}
#CmdLet is NYI - change to -Skip:($NonWinAdmin) when implemented
It "should be able to Remove-EventLog -Source <string> -ComputerName <string>" -Pending:($true) {
{Remove-EventLog -Source TestSource -ComputerName $env:COMPUTERNAME -ErrorAction Stop} | Should -Not -Throw
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventID 1 -ErrorAction Stop } | Should -Throw -ErrorId "Microsoft.PowerShell.Commands.WriteEventLogCommand"
{ Write-EventLog -LogName TestLog -Source TestSource -Message "Test" -EventId 1 -ErrorAction Stop } | Should -Throw -ErrorId "Microsoft.PowerShell.Commands.WriteEventLogCommand"
{ Get-EventLog -LogName TestLog -ErrorAction Stop; } | Should -Throw -ErrorId "System.InvalidOperationException,Microsoft.PowerShell.Commands.GetEventLogCommand"
}
}

View File

@ -75,9 +75,9 @@ Describe "Remove-Item" -Tags "CI" {
# Delete the specific string
Remove-Item (Join-Path -Path $testpath -ChildPath "*") -Include file*.txt
# validate that the string under test was deleted, and the nonmatching strings still exist
Test-path (Join-Path -Path $testpath -ChildPath file1.txt) | Should -BeFalse
Test-path (Join-Path -Path $testpath -ChildPath file2.txt) | Should -BeFalse
Test-path (Join-Path -Path $testpath -ChildPath file3.txt) | Should -BeFalse
Test-Path (Join-Path -Path $testpath -ChildPath file1.txt) | Should -BeFalse
Test-Path (Join-Path -Path $testpath -ChildPath file2.txt) | Should -BeFalse
Test-Path (Join-Path -Path $testpath -ChildPath file3.txt) | Should -BeFalse
Test-Path $testfilepath | Should -BeTrue
# Delete the non-matching strings
@ -131,7 +131,7 @@ Describe "Remove-Item" -Tags "CI" {
New-Item -Name $testfile -Path $testsubdirectory -ItemType "file" -Value "lorem ipsum"
$complexDirectory = Join-Path -Path $testsubdirectory -ChildPath $testfile
test-path $complexDirectory | Should -BeTrue
Test-Path $complexDirectory | Should -BeTrue
{ Remove-Item $testdirectory -Recurse} | Should -Not -Throw

View File

@ -2,10 +2,10 @@
# Licensed under the MIT License.
Describe "Rename-Item tests" -Tag "CI" {
BeforeAll {
Setup -f originalFile.txt -content "This is content"
Setup -f originalFile.txt -Content "This is content"
$source = "$TESTDRIVE/originalFile.txt"
$target = "$TESTDRIVE/ItemWhichHasBeenRenamed.txt"
Setup -f [orig-file].txt -content "This is not content"
Setup -f [orig-file].txt -Content "This is not content"
$sourceSp = "$TestDrive/``[orig-file``].txt"
$targetSpName = "ItemWhichHasBeen[Renamed].txt"
$targetSp = "$TestDrive/ItemWhichHasBeen``[Renamed``].txt"
@ -14,8 +14,8 @@ Describe "Rename-Item tests" -Tag "CI" {
}
It "Rename-Item will rename a file" {
Rename-Item $source $target
test-path $source | Should -BeFalse
test-path $target | Should -BeTrue
Test-Path $source | Should -BeFalse
Test-Path $target | Should -BeTrue
"$target" | Should -FileContentMatchExactly "This is content"
}
It "Rename-Item will rename a file when path contains special char" {
@ -31,7 +31,7 @@ Describe "Rename-Item tests" -Tag "CI" {
$oldSp = "$wdSp/$oldSpBName"
$newSpName = "[renamed]file.txt"
$newSp = "$wdSp/``[renamed``]file.txt"
In $wdSp -Execute {
In $wdSp -execute {
$null = New-Item -Name $oldSpName -ItemType File -Value $content -Force
Rename-Item -Path $oldSpBName $newSpName
}
@ -46,7 +46,7 @@ Describe "Rename-Item tests" -Tag "CI" {
$oldSp = "$wdSp/$oldSpBName"
$newSpName = "[renamed]file2.txt"
$newSp = "$wdSp/``[renamed``]file2.txt"
In $wdSp -Execute {
In $wdSp -execute {
$null = New-Item -Name $oldSpName -ItemType File -Value $content -Force
Rename-Item -LiteralPath $oldSpName $newSpName
}

View File

@ -81,7 +81,7 @@ try
}
It "Should not support timeout on Unix" -Skip:($IsWindows) {
{ Restart-Computer -timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "NamedParameterNotFound,Microsoft.PowerShell.Commands.RestartComputerCommand"
{ Restart-Computer -Timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "NamedParameterNotFound,Microsoft.PowerShell.Commands.RestartComputerCommand"
}
It "Should not support Delay on Unix" -Skip:($IsWindows) {
@ -90,12 +90,12 @@ try
It "Should not support timeout on localhost" -Skip:(!$IsWindows) {
Set-TesthookResult -testhookName $restartTesthookResultName -value $defaultResultValue
{ Restart-Computer -timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "RestartComputerInvalidParameter,Microsoft.PowerShell.Commands.RestartComputerCommand"
{ Restart-Computer -Timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "RestartComputerInvalidParameter,Microsoft.PowerShell.Commands.RestartComputerCommand"
}
It "Should not support timeout on localhost" -Skip:(!$IsWindows) {
Set-TesthookResult -testhookName $restartTesthookResultName -value $defaultResultValue
{ Restart-Computer -timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "RestartComputerInvalidParameter,Microsoft.PowerShell.Commands.RestartComputerCommand"
{ Restart-Computer -Timeout 3 -ErrorAction Stop } | Should -Throw -ErrorId "RestartComputerInvalidParameter,Microsoft.PowerShell.Commands.RestartComputerCommand"
}
}
}

View File

@ -60,7 +60,7 @@ Describe "Set-Content cmdlet tests" -Tags "CI" {
It "should throw 'ParameterArgumentValidationErrorNullNotAllowed' when -Path is `$()" {
{ Set-Content -Path $() -Value "ShouldNotWorkBecausePathIsInvalid" -ErrorAction Stop } | Should -Throw -ErrorId "ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.SetContentCommand"
}
It "should throw 'PSNotSupportedException' when you Set-Content to an unsupported provider" -skip:$skipRegistry {
It "should throw 'PSNotSupportedException' when you Set-Content to an unsupported provider" -Skip:$skipRegistry {
{ Set-Content -Path HKLM:\\software\\microsoft -Value "ShouldNotWorkBecausePathIsUnsupported" -ErrorAction Stop } | Should -Throw -ErrorId "NotSupported,Microsoft.PowerShell.Commands.SetContentCommand"
}
#[BugId(BugDatabase.WindowsOutOfBandReleases, 9058182)]

View File

@ -1,14 +1,14 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "Set-Item" -Tag "CI" {
$testCases = @{ Path = "variable:SetItemTestCase"; Value = "TestData"; Validate = { $SetItemTestCase | Should -Be "TestData" }; Reset = {remove-item variable:SetItemTestCase} },
@{ Path = "alias:SetItemTestCase"; Value = "Get-Alias"; Validate = { (Get-Alias SetItemTestCase).Definition | Should -Be "Get-Alias"}; Reset = { remove-item alias:SetItemTestCase } },
@{ Path = "function:SetItemTestCase"; Value = { 1 }; Validate = { SetItemTestCase | Should -Be 1 }; Reset = { remove-item function:SetItemTestCase } },
@{ Path = "env:SetItemTestCase"; Value = { 1 }; Validate = { $env:SetItemTestCase | Should -Be 1 }; Reset = { remove-item env:SetItemTestCase } }
$testCases = @{ Path = "variable:SetItemTestCase"; Value = "TestData"; Validate = { $SetItemTestCase | Should -Be "TestData" }; Reset = {Remove-Item variable:SetItemTestCase} },
@{ Path = "alias:SetItemTestCase"; Value = "Get-Alias"; Validate = { (Get-Alias SetItemTestCase).Definition | Should -Be "Get-Alias"}; Reset = { Remove-Item alias:SetItemTestCase } },
@{ Path = "function:SetItemTestCase"; Value = { 1 }; Validate = { SetItemTestCase | Should -Be 1 }; Reset = { Remove-Item function:SetItemTestCase } },
@{ Path = "env:SetItemTestCase"; Value = { 1 }; Validate = { $env:SetItemTestCase | Should -Be 1 }; Reset = { Remove-Item env:SetItemTestCase } }
It "Set-Item should be able to handle <Path>" -TestCase $testCases {
param ( $Path, $Value, $Validate, $Reset )
Set-item -path $path -Value $value
Set-Item -Path $path -Value $value
try {
& $Validate
}

View File

@ -80,14 +80,14 @@ Describe "Start-Process" -Tag "Feature","RequireAdminOnWindows" {
It "Should handle stdout redirection without error" {
$process = Start-Process ping -ArgumentList $pingParam -Wait -RedirectStandardOutput $tempFile @extraArgs
$dirEntry = get-childitem $tempFile
$dirEntry = Get-ChildItem $tempFile
$dirEntry.Length | Should -BeGreaterThan 0
}
# Marking this test 'pending' to unblock daily builds. Filed issue : https://github.com/PowerShell/PowerShell/issues/2396
It "Should handle stdin redirection without error" -Pending {
$process = Start-Process sort -Wait -RedirectStandardOutput $tempFile -RedirectStandardInput $assetsFile @extraArgs
$dirEntry = get-childitem $tempFile
$dirEntry = Get-ChildItem $tempFile
$dirEntry.Length | Should -BeGreaterThan 0
}

View File

@ -27,7 +27,7 @@ Describe "Test-Connection" -tags "CI" {
$pingResults.Count | Should -Be 4
$result = $pingResults |
Where-Object Status -eq 'Success' |
Where-Object Status -EQ 'Success' |
Select-Object -First 1
$result | Should -BeOfType Microsoft.PowerShell.Commands.TestConnectionCommand+PingStatus
@ -118,7 +118,7 @@ Describe "Test-Connection" -tags "CI" {
# be a lack of or inconsistent support for IPv6 in CI environments.
It "Allows us to Force IPv6" -Pending {
$result = Test-Connection $targetName -IPv6 -Count 4 |
Where-Object Status -eq Success |
Where-Object Status -EQ Success |
Select-Object -First 1
$result.Address | Should -BeExactly $targetAddressIPv6
@ -127,7 +127,7 @@ Describe "Test-Connection" -tags "CI" {
It 'can convert IPv6 addresses to IPv4 with -IPv4 parameter' -Pending {
$result = Test-Connection '2001:4860:4860::8888' -IPv4 -Count 4 |
Where-Object Status -eq Success |
Where-Object Status -EQ Success |
Select-Object -First 1
# Google's DNS can resolve to either address.
$result.Address.IPAddressToString | Should -BeIn @('8.8.8.8', '8.8.4.4')
@ -136,7 +136,7 @@ Describe "Test-Connection" -tags "CI" {
It 'can convert IPv4 addresses to IPv6 with -IPv6 parameter' -Pending {
$result = Test-Connection '8.8.8.8' -IPv6 -Count 4 |
Where-Object Status -eq Success |
Where-Object Status -EQ Success |
Select-Object -First 1
# Google's DNS can resolve to either address.
$result.Address.IPAddressToString | Should -BeIn @('2001:4860:4860::8888', '2001:4860:4860::8844')

View File

@ -3,12 +3,12 @@
Describe "Test-Path" -Tags "CI" {
BeforeAll {
$testdirectory = $TestDrive
$testfilename = New-Item -path $testdirectory -Name testfile.txt -ItemType file -Value 1 -force
$testfilename = New-Item -Path $testdirectory -Name testfile.txt -ItemType file -Value 1 -Force
# populate with additional files
New-Item -Path $testdirectory -Name datestfile -value 1 -ItemType file | Out-Null
New-Item -Path $testdirectory -Name gatestfile -value 1 -ItemType file | Out-Null
New-Item -Path $testdirectory -Name usr -value 1 -ItemType directory | Out-Null
New-Item -Path $testdirectory -Name datestfile -Value 1 -ItemType file | Out-Null
New-Item -Path $testdirectory -Name gatestfile -Value 1 -ItemType file | Out-Null
New-Item -Path $testdirectory -Name usr -Value 1 -ItemType directory | Out-Null
$nonExistentDir = Join-Path -Path (Join-Path -Path $testdirectory -ChildPath usr) -ChildPath bin
$nonExistentPath = Join-Path -Path (Join-Path -Path (Join-Path -Path $testdirectory -ChildPath usr) -ChildPath bin) -ChildPath error

View File

@ -143,7 +143,7 @@ try {
}
AfterAll {
if ($IsWindows) {
Set-TimeZone -ID $originalTimeZoneId
Set-TimeZone -Id $originalTimeZoneId
}
}
@ -172,7 +172,7 @@ try {
}
AfterAll {
if ($IsWindows) {
Set-TimeZone -ID $originalTimeZoneId
Set-TimeZone -Id $originalTimeZoneId
}
}

View File

@ -29,7 +29,7 @@ Describe "UnixFileSystem additions" -Tag "CI" {
It "The UnixStat property should be the correct type" {
$expected = "System.Management.Automation.Platform+Unix+CommonStat"
$i = (get-item /).psobject.properties['UnixStat'].TypeNameOfValue
$i = (Get-Item /).psobject.properties['UnixStat'].TypeNameOfValue
$i | Should -Be $expected
}
}

View File

@ -1,19 +1,19 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
Describe "Acl cmdlets are available and operate properly" -Tag CI {
It "Get-Acl returns an ACL object" -pending:(!$IsWindows) {
$ACL = get-acl $TESTDRIVE
It "Get-Acl returns an ACL object" -Pending:(!$IsWindows) {
$ACL = Get-Acl $TESTDRIVE
$ACL | Should -BeOfType System.Security.AccessControl.DirectorySecurity
}
It "Set-Acl can set the ACL of a directory" -pending {
It "Set-Acl can set the ACL of a directory" -Pending {
Setup -d testdir
$directory = "$TESTDRIVE/testdir"
$acl = get-acl $directory
$acl = Get-Acl $directory
$accessRule = [System.Security.AccessControl.FileSystemAccessRule]::New("Everyone","FullControl","ContainerInherit,ObjectInherit","None","Allow")
$acl.AddAccessRule($accessRule)
{ $acl | Set-Acl $directory } | Should -Not -Throw
$newacl = get-acl $directory
$newacl = Get-Acl $directory
$newrule = $newacl.Access | Where-Object { $accessrule.FileSystemRights -eq $_.FileSystemRights -and $accessrule.AccessControlType -eq $_.AccessControlType -and $accessrule.IdentityReference -eq $_.IdentityReference }
$newrule | Should -Not -BeNullOrEmpty
}

View File

@ -44,7 +44,7 @@ Describe "Certificate Provider tests" -Tags "CI" {
}
Context "Get-Item tests" {
it "Should be able to get a certificate store, path: <path>" -TestCases $testLocations {
It "Should be able to get a certificate store, path: <path>" -TestCases $testLocations {
param([string] $path)
$expectedResolvedPath = Resolve-Path -LiteralPath $path
$result = Get-Item -LiteralPath $path
@ -55,24 +55,24 @@ Describe "Certificate Provider tests" -Tags "CI" {
$resolvedPath.ProviderPath.TrimStart('\') | Should -Be $expectedResolvedPath.ProviderPath.TrimStart('\')
}
}
it "Should return two items at the root of the provider" {
It "Should return two items at the root of the provider" {
(Get-Item -Path cert:\*).Count | Should -Be 2
}
it "Should be able to get multiple items explictly" {
(get-item cert:\LocalMachine , cert:\CurrentUser).Count | Should -Be 2
It "Should be able to get multiple items explictly" {
(Get-Item cert:\LocalMachine , cert:\CurrentUser).Count | Should -Be 2
}
it "Should return PathNotFound when getting a non-existant certificate store" {
It "Should return PathNotFound when getting a non-existant certificate store" {
{Get-Item cert:\IDONTEXIST -ErrorAction Stop} | Should -Throw -ErrorId "PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand"
}
it "Should return PathNotFound when getting a non-existant certificate" {
It "Should return PathNotFound when getting a non-existant certificate" {
{Get-Item cert:\currentuser\my\IDONTEXIST -ErrorAction Stop} | Should -Throw -ErrorId "PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand"
}
}
Context "Get-ChildItem tests"{
it "should be able to get a container using a wildcard" {
It "should be able to get a container using a wildcard" {
(Get-ChildItem Cert:\CurrentUser\M?).PSPath | Should -Be 'Microsoft.PowerShell.Security\Certificate::CurrentUser\My'
}
it "Should return two items at the root of the provider" {
It "Should return two items at the root of the provider" {
(Get-ChildItem -Path cert:\).Count | Should -Be 2
}
}
@ -106,49 +106,49 @@ Describe "Certificate Provider tests" -Tags "Feature" {
}
Context "Get-Item tests" {
it "Should be able to get certifate by path: <path>" -TestCases $currentUserMyLocations {
It "Should be able to get certifate by path: <path>" -TestCases $currentUserMyLocations {
param([string] $path)
$expectedThumbprint = (Get-GoodCertificateObject).Thumbprint
$leafPath = Join-Path -Path $path -ChildPath $expectedThumbprint
$cert = (Get-item -LiteralPath $leafPath)
$cert = (Get-Item -LiteralPath $leafPath)
$cert | Should -Not -Be null
$cert.Thumbprint | Should -Be $expectedThumbprint
}
it "Should be able to get DnsNameList of certifate by path: <path>" -TestCases $currentUserMyLocations {
It "Should be able to get DnsNameList of certifate by path: <path>" -TestCases $currentUserMyLocations {
param([string] $path)
$expectedThumbprint = (Get-GoodCertificateObject).Thumbprint
$expectedName = (Get-GoodCertificateObject).DnsNameList[0].Unicode
$expectedEncodedName = (Get-GoodCertificateObject).DnsNameList[0].Punycode
$leafPath = Join-Path -Path $path -ChildPath $expectedThumbprint
$cert = (Get-item -LiteralPath $leafPath)
$cert = (Get-Item -LiteralPath $leafPath)
$cert | Should -Not -Be null
$cert.DnsNameList | Should -Not -Be null
$cert.DnsNameList.Count | Should -Be 1
$cert.DnsNameList[0].Unicode | Should -Be $expectedName
$cert.DnsNameList[0].Punycode | Should -Be $expectedEncodedName
}
it "Should be able to get DNSNameList of certifate by path: <path>" -TestCases $currentUserMyLocations {
It "Should be able to get DNSNameList of certifate by path: <path>" -TestCases $currentUserMyLocations {
param([string] $path)
$expectedThumbprint = (Get-GoodCertificateObject).Thumbprint
$expectedOid = (Get-GoodCertificateObject).EnhancedKeyUsageList[0].ObjectId
$leafPath = Join-Path -Path $path -ChildPath $expectedThumbprint
$cert = (Get-item -LiteralPath $leafPath)
$cert = (Get-Item -LiteralPath $leafPath)
$cert | Should -Not -Be null
$cert.EnhancedKeyUsageList | Should -Not -Be null
$cert.EnhancedKeyUsageList.Count | Should -Be 1
$cert.EnhancedKeyUsageList[0].ObjectId.Length | Should -Not -Be 0
$cert.EnhancedKeyUsageList[0].ObjectId | Should -Be $expectedOid
}
it "Should filter to codesign certificates" {
$allCerts = get-item cert:\CurrentUser\My\*
$codeSignCerts = get-item cert:\CurrentUser\My\* -CodeSigningCert
It "Should filter to codesign certificates" {
$allCerts = Get-Item cert:\CurrentUser\My\*
$codeSignCerts = Get-Item cert:\CurrentUser\My\* -CodeSigningCert
$codeSignCerts | Should -Not -Be null
$allCerts | Should -Not -Be null
$nonCodeSignCertCount = $allCerts.Count - $codeSignCerts.Count
$nonCodeSignCertCount | Should -Not -Be 0
}
it "Should be able to exclude by thumbprint" {
$allCerts = get-item cert:\CurrentUser\My\*
It "Should be able to exclude by thumbprint" {
$allCerts = Get-Item cert:\CurrentUser\My\*
$testThumbprint = (Get-GoodCertificateObject).Thumbprint
$allCertsExceptOne = (Get-Item "cert:\currentuser\my\*" -Exclude $testThumbprint)
$allCerts | Should -Not -Be null
@ -158,9 +158,9 @@ Describe "Certificate Provider tests" -Tags "Feature" {
}
}
Context "Get-ChildItem tests"{
it "Should filter to codesign certificates" {
$allCerts = get-ChildItem cert:\CurrentUser\My
$codeSignCerts = get-ChildItem cert:\CurrentUser\My -CodeSigningCert
It "Should filter to codesign certificates" {
$allCerts = Get-ChildItem cert:\CurrentUser\My
$codeSignCerts = Get-ChildItem cert:\CurrentUser\My -CodeSigningCert
$codeSignCerts | Should -Not -Be null
$allCerts | Should -Not -Be null
$nonCodeSignCertCount = $allCerts.Count - $codeSignCerts.Count

View File

@ -1,4 +1,4 @@
# Copyright (c) Microsoft Corporation.
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
using namespace System.Security.Cryptography.X509Certificates

Some files were not shown because too many files have changed in this diff Show More