From 84b60d6be4c79d69e8abbfd410989ae8b220b31c Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Thu, 29 Oct 2015 14:55:09 -0700 Subject: [PATCH 1/3] added ConvertFrom-Csv tests --- src/pester-tests/ConvertFrom-Csv.Tests.ps1 | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/pester-tests/ConvertFrom-Csv.Tests.ps1 diff --git a/src/pester-tests/ConvertFrom-Csv.Tests.ps1 b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 new file mode 100644 index 000000000..6fe75c18c --- /dev/null +++ b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 @@ -0,0 +1,27 @@ +Describe "ConvertFrom-Csv" { + $testObject = "a", "1" + $testDelimiter = "a; b" + $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 be able to set a delimiter" { + { $testDelimiter | ConvertFrom-Csv -Delimiter ";" } | Should Not Throw + } + + 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 + } +} \ No newline at end of file From 6036e09f43cd30082d8f6b0d8eb7bbfb11e4c809 Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Mon, 2 Nov 2015 13:45:06 -0800 Subject: [PATCH 2/3] Added Csv test file for Convertfrom-Csv --- src/pester-tests/assets/TestCsv2.csv | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 src/pester-tests/assets/TestCsv2.csv 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) From ccc873b45f4a8446f7df0dcaa19e4ec8901e3e12 Mon Sep 17 00:00:00 2001 From: Zachary Folwick Date: Mon, 2 Nov 2015 13:45:39 -0800 Subject: [PATCH 3/3] made changes according to PR --- src/pester-tests/ConvertFrom-Csv.Tests.ps1 | 31 +++++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/src/pester-tests/ConvertFrom-Csv.Tests.ps1 b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 index 6fe75c18c..7aa3e8de2 100644 --- a/src/pester-tests/ConvertFrom-Csv.Tests.ps1 +++ b/src/pester-tests/ConvertFrom-Csv.Tests.ps1 @@ -1,6 +1,7 @@ Describe "ConvertFrom-Csv" { $testObject = "a", "1" - $testDelimiter = "a; b" + $testcsv = "./assets/TestCsv2.csv" + $testName = "Zaphod BeebleBrox" $testColumns = @" a,b,c 1,2,3 @@ -13,15 +14,37 @@ { $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" { - { $testDelimiter | ConvertFrom-Csv -Delimiter ";" } | Should Not Throw + { $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 } -} \ No newline at end of file +}