PowerShell7/test/powershell/Format-Wide.Tests.ps1

98 lines
3.1 KiB
PowerShell
Raw Normal View History

Describe "Format-Wide" {
2015-10-06 19:04:57 +00:00
It "Should have the same output between the alias and the unaliased function" {
$nonaliased = Get-ChildItem | Format-Wide
$aliased = Get-ChildItem | fw
2015-10-06 19:04:57 +00:00
$($nonaliased | Out-String).CompareTo($($aliased | Out-String)) | Should Be 0
2015-10-06 19:04:57 +00:00
}
It "Should be able to specify the columns in output using the column switch" {
{ Get-ChildItem | Format-Wide -Column 3 } | Should Not Throw
2015-10-06 19:04:57 +00:00
}
It "Should be able to use the autosize switch" {
{ Get-ChildItem | Format-Wide -Autosize } | Should Not Throw
2015-10-06 19:04:57 +00:00
}
It "Should be able to take inputobject instead of pipe" {
{ Format-Wide -InputObject $(Get-ChildItem) } | Should Not Throw
2015-10-06 19:04:57 +00:00
}
It "Should be able to use the property switch" {
{ Format-Wide -InputObject $(Get-ChildItem) -Property Mode } | Should Not Throw
2015-10-06 19:04:57 +00:00
}
It "Should throw an error when property switch and view switch are used together" {
try
{
Format-Wide -InputObject $(Get-ChildItem) -Property CreationTime -View aoeu
}
catch
{
$_.FullyQualifiedErrorId | Should be "FormatCannotSpecifyViewAndProperty,Microsoft.PowerShell.Commands.FormatWideCommand"
}
2015-10-06 19:04:57 +00:00
}
It "Should throw and suggest proper input when view is used with invalid input without the property switch" {
{ Format-Wide -InputObject $(Get-Process) -View aoeu } | Should Throw
2015-10-06 19:04:57 +00:00
}
}
Describe "Format-Wide DRT basic functionality" -Tags DRT{
It "Format-Wide with array should work" -Pending:($env:TRAVIS_OS_NAME -eq "osx") {
$al = (0..255)
$info = @{}
$info.array = $al
$result = $info | Format-Wide | Out-String
$result | Should Match "array"
}
It "Format-Wide with No Objects for End-To-End should work"{
$p = @{}
$result = $p | Format-Wide | Out-String
$result | Should BeNullOrEmpty
}
It "Format-Wide with Null Objects for End-To-End should work"{
$p = $null
$result = $p | Format-Wide | Out-String
$result | Should BeNullOrEmpty
}
It "Format-Wide with single line string for End-To-End should work"{
$p = "single line string"
$result = $p | Format-Wide | Out-String
$result | Should Match $p
}
It "Format-Wide with multiple line string for End-To-End should work"{
$p = "Line1\nLine2"
$result = $p | Format-Wide | Out-String
$result | Should Match "Line1"
$result | Should Match "Line2"
}
It "Format-Wide with string sequence for End-To-End should work"{
$p = "Line1","Line2"
$result = $p |Format-Wide | Out-String
$result | Should Match "Line1"
$result | Should Match "Line2"
}
It "Format-Wide with complex object for End-To-End should work" -Pending:($env:TRAVIS_OS_NAME -eq "osx") {
Add-Type -TypeDefinition "public enum MyDayOfWeek{Sun,Mon,Tue,Wed,Thr,Fri,Sat}"
$eto = New-Object MyDayOfWeek
$info = @{}
$info.intArray = 1,2,3,4
$info.arrayList = "string1","string2"
$info.enumerable = [MyDayOfWeek]$eto
$info.enumerableTestObject = $eto
$result = $info|Format-Wide|Out-String
$result | Should Match "intArray"
$result | Should Match "arrayList"
$result | Should Match "enumerable"
$result | Should Match "enumerableTestObject"
}
}