diff --git a/.gitmodules b/.gitmodules index 49857161f..5b7958300 100644 --- a/.gitmodules +++ b/.gitmodules @@ -12,4 +12,4 @@ url = https://msostc.visualstudio.com/DefaultCollection/PS/_git/monad-ext [submodule "ext-src/pester"] path = ext-src/pester - url = mshttps://msostc.visualstudio.com/DefaultCollection/PS/_git/Pester + url = https://msostc.visualstudio.com/DefaultCollection/PS/_git/Pester diff --git a/src/pester-tests/Test-Format-List.Tests.ps1 b/src/pester-tests/Test-Format-List.Tests.ps1 new file mode 100644 index 000000000..d284128dd --- /dev/null +++ b/src/pester-tests/Test-Format-List.Tests.ps1 @@ -0,0 +1,73 @@ +Describe "Test-Format-List" { + BeforeEach { + $input = New-Object PSObject + Add-Member -InputObject $input -MemberType NoteProperty -Name testName -Value testValue + } + + It "Should call format list without error" { + { $input | Format-List } | Should Not Throw + { $input | Format-List } | Should Not BeNullOrEmpty + } + + It "Should be able to call the alias" { + { $input | fl } | Should Not Throw + { $input | fl } | Should Not BeNullOrEmpty + } + + It "Should have the same output whether choosing alias or not" { + $expected = $input | Format-List | Out-String + $actual = $input | fl | Out-String + + $actual | Should Be $expected + } + + It "Should produce the expected output" { + $expected = "`n`ntestName : testValue`n`n`n`n" + $input = New-Object PSObject + Add-Member -InputObject $input -MemberType NoteProperty -Name testName -Value testValue + + $input | Format-List | Should Not BeNullOrEmpty + $input | Format-List | Out-String | Should Not BeNullOrEmpty + $input | Format-List | Out-String | Should Be $expected + } + + It "Should be able to call a property of the piped input" { + # Tested on two input commands to verify functionality. + { Get-Process | Format-List -Property Name } | Should Not Throw + { Get-Process | Format-List -Property Name } | Should Not BeNullOrEmpty + + { Get-Date | Format-List -Property DisplayName } | Should Not Throw + { Get-Date | Format-List -Property DisplayName } | Should Not BeNullOrEmpty + } + + It "Should be able to display a list of props when separated by a comma" { + { Get-Process | Format-List -Property Name,BasePriority } | Should Not Throw + + (Get-Process | Format-List -Property Name,BasePriority | Out-String) -Split "`n" | + Where-Object { $_.trim() -ne "" } | + ForEach-Object { $_ | Should Match "(Name)|(BasePriority)" } + } + + It "Should show the requested prop in every element" { + # Testing each element of format-list, using a for-each loop since the Format-List is so opaque + (Get-Process | Format-List -Property CPU | Out-String) -Split "`n" | + Where-Object { $_.trim() -ne "" } | + ForEach-Object { $_ | Should Match "CPU :" } + } + + It "Should not show anything other than the requested props" { + $output = Get-Process | Format-List -Property Name | Out-String + + $output | Should Not Match "CPU :" + $output | Should Not Match "Id :" + $output | Should Not Match "Handle :" + } + + It "Should be able to take input without piping objects to it" { + $output = { Format-List -InputObject $input } + + $output | Should Not Throw + $output | Should Not BeNullOrEmpty + + } +} diff --git a/src/pester-tests/Test-Get-Item.Tests.ps1 b/src/pester-tests/Test-Get-Item.Tests.ps1 index 9399ccaad..38bda92da 100644 --- a/src/pester-tests/Test-Get-Item.Tests.ps1 +++ b/src/pester-tests/Test-Get-Item.Tests.ps1 @@ -18,4 +18,8 @@ (Get-Item /usr/bin) | Should Not BeNullOrEmpty (Get-Item ..) | Should Not BeNullOrEmpty } + + It "Should have mode flags set" { + ls / | foreach-object { $_.Mode | Should Not BeNullOrEmpty } + } } diff --git a/src/ps_test/test_FileSystemProvider.cs b/src/ps_test/test_FileSystemProvider.cs new file mode 100644 index 000000000..2bdcacbfc --- /dev/null +++ b/src/ps_test/test_FileSystemProvider.cs @@ -0,0 +1,16 @@ +using Xunit; +using System; +using System.Management.Automation; +using Microsoft.PowerShell.Commands; + +namespace PSTests +{ + public static class FileSystemProviderTests + { + [Fact] + public static void TestCreateJunctionFails() + { + Assert.False(InternalSymbolicLinkLinkCodeMethods.CreateJunction("","")); + } + } +}