diff --git a/src/pester-tests/ConvertFrom-Csv.Tests.ps1 b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 new file mode 100644 index 000000000..7aa3e8de2 --- /dev/null +++ b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 @@ -0,0 +1,50 @@ +Describe "ConvertFrom-Csv" { + $testObject = "a", "1" + $testcsv = "./assets/TestCsv2.csv" + $testName = "Zaphod BeebleBrox" + $testColumns = @" + a,b,c + 1,2,3 +"@ + It "Should be able to be called" { + { ConvertFrom-Csv -InputObject $testObject } | Should Not Throw + } + + It "Should be able to pipe" { + { $testObject | ConvertFrom-Csv } | Should Not Throw + } + + It "Should have expected results when using piped inputs" { + $csvContent = Get-Content $testcsv + $actualresult = $csvContent | ConvertFrom-Csv + + $actualresult.GetType().BaseType.Name | Should Be "Array" + $actualresult[0].GetType().Name | Should Be "PSCustomObject" + + #Should have a name property in the result + $actualresult[0].Name | Should Be $testName + } + + It "Should be able to set a delimiter" { + { $testcsv | ConvertFrom-Csv -Delimiter ";" } | Should Not Throw + } + + It "Should actually delimit the output" { + $csvContent = Get-Content $testcsv + $actualresult = $csvContent | ConvertFrom-Csv -Delimiter ";" + + $actualresult.GetType().BaseType.Name | Should Be "Array" + $actualresult[0].GetType().Name | Should Be "PSCustomObject" + + # ConvertFrom-Csv takes the first line of the input as a header by default + $actualresult.Length | Should Be $($csvContent.Length - 1) + } + + It "Should be able to have multiple columns" { + $actualData = $testColumns | ConvertFrom-Csv + + $actualLength = $($( $actualData | gm) | Where-Object {$_.MemberType -eq "NoteProperty" }).Length + + $actualLength | Should Be 3 + } +} diff --git a/src/pester-tests/assets/TestCsv2.csv b/src/pester-tests/assets/TestCsv2.csv new file mode 100644 index 000000000..bad447d88 --- /dev/null +++ b/src/pester-tests/assets/TestCsv2.csv @@ -0,0 +1,3 @@ +Name,Planet,Heads,Arms,Brains,Assessment +Zaphod BeebleBrox,Beetlgeuse,2,3,Indeterminant,Dangerous +Arthur Dent,Earth,1,2,Some,Harmless (Mostly)