Files
ImportExcel/Export-Excel.Tests.ps1

64 lines
1.5 KiB
PowerShell

# Contributed by https://github.com/W1M0R
Import-Module ImportExcel -Force
function New-TestWorkbook {
$testWorkbook = "$($PSScriptRoot)\test.xlsx"
Remove-Item $testWorkbook -ErrorAction Ignore
$testWorkbook
}
function Remove-TestWorkbook {
New-TestWorkbook | Out-Null
}
function New-TestDataCsv {
@"
ID,Product,Quantity,Price,Total
12001,Nails,37,3.99,147.63
12002,Hammer,5,12.10,60.5
12003,Saw,12,15.37,184.44
01200,Drill,20,8,160
00120,Crowbar,7,23.48,164.36
true,Bla,7,82,12
false,Bla,7,82,12
2009-05-01 14:57:32.8,Yay,1,3,2
"@ | ConvertFrom-Csv
}
Describe "Export-Excel" {
$csvData = New-TestDataCsv
$workbook = New-TestWorkbook
Context "Importing CSV data from a here string" {
It "All properties are type [string]" {
$csvData | % {
$_.PSObject.Properties | % {
$_.Value -is [string] | Should Be $true
}
}
}
It "Leading zeroes are preserved" {
$csvData[4] | Select-Object -ExpandProperty ID | Should Be "00120"
}
}
Context "Piping CSV data to Export-Excel" {
$xlPkg = $csvData | Export-Excel $workbook -PassThru
$ws = $xlPkg.Workbook.WorkSheets[1]
It "Exports numeric strings as numbers" {
$csvData[2] | Select-Object -ExpandProperty ID | Should Be "12003"
$ws.Cells["A4"].Value -is [double] | Should Be $true
$ws.Cells["A4"].Value | Should Be 12003
}
$xlPkg.Save()
$xlPkg.Dispose()
}
Remove-TestWorkbook
}