From 15eb2130b54b9eab6009b8b23eb7ac9c0c8d1b64 Mon Sep 17 00:00:00 2001 From: ili101 Date: Thu, 29 Aug 2019 01:22:55 +0300 Subject: [PATCH] Mereg --- __tests__/AddTrendlinesToAChart.tests.ps1 | 5 +- __tests__/Export-Excel.Tests.ps1 | 95 ++++++++++------------- __tests__/ExtraLongCmd.tests.ps1 | 1 - __tests__/First10Races.tests.ps1 | 4 +- __tests__/InputItemParameter.tests.ps1 | 2 - __tests__/Join-Worksheet.tests.ps1 | 6 +- __tests__/RangePassing.ps1 | 1 - __tests__/Validation.tests.ps1 | 4 - 8 files changed, 43 insertions(+), 75 deletions(-) diff --git a/__tests__/AddTrendlinesToAChart.tests.ps1 b/__tests__/AddTrendlinesToAChart.tests.ps1 index 5269a76..5891fc2 100644 --- a/__tests__/AddTrendlinesToAChart.tests.ps1 +++ b/__tests__/AddTrendlinesToAChart.tests.ps1 @@ -1,7 +1,4 @@ -Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } -$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) -Describe "Test adding trendlines to charts" { +Describe "Test adding trendlines to charts" { BeforeAll { $script:data = ConvertFrom-Csv @" Region,Item,TotalSold diff --git a/__tests__/Export-Excel.Tests.ps1 b/__tests__/Export-Excel.Tests.ps1 index 74b0aad..53a3e9d 100644 --- a/__tests__/Export-Excel.Tests.ps1 +++ b/__tests__/Export-Excel.Tests.ps1 @@ -14,7 +14,7 @@ Describe ExportExcel { } Context "#Example 1 # Creates and opens a file with the right number of rows and columns" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test with a maximum of 100 processes for speed; export all properties, then export smaller subsets. $processes = Get-Process | where {$_.StartTime} | Select-Object -first 100 -Property * -excludeProperty Parent @@ -76,7 +76,7 @@ Describe ExportExcel { } Context " # NoAliasOrScriptPropeties -ExcludeProperty and -DisplayPropertySet work" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue $processes = Get-Process | Select-Object -First 100 $propertyNames = $Processes[0].psobject.properties.where( {$_.MemberType -eq 'Property'}).name @@ -125,7 +125,7 @@ Describe ExportExcel { Context "#Example 2 # Exports a list of numbers and applies number format " { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #testing -ReturnRange switch and applying number format to Formulas as well as values. $returnedRange = @($null, -1, 0, 34, 777, "", -0.5, 119, -0.1, 234, 788,"=A9+A10") | Export-Excel -NumberFormat '[Blue]$#,##0.00;[Red]-$#,##0.00' -Path $path -ReturnRange @@ -187,7 +187,7 @@ Describe ExportExcel { if ((Get-Culture).NumberFormat.CurrencySymbol -eq "£") {$OtherCurrencySymbol = "$"} else {$OtherCurrencySymbol = "£"} - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" $warnVar = $null #Test correct export of different data types and number formats; test hyperlinks, test -NoNumberConversion test object is converted to a string with no warnings, test calcuation of formula Remove-item -Path $path -ErrorAction SilentlyContinue @@ -304,7 +304,7 @@ Describe ExportExcel { Context "# # Setting cells for different data types with -noHeader" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test -NoHeader & -NoNumberConversion [PSCustOmobject][Ordered]@{ @@ -365,7 +365,7 @@ Describe ExportExcel { #Test New-ConditionalText builds correctly $ct = New-ConditionalText -ConditionalType GreaterThan 525 -ConditionalTextColor ([System.Drawing.Color]::DarkRed) -BackgroundColor ([System.Drawing.Color]::LightPink) - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Test -ConditionalText with a single conditional spec. Write-Output 489 668 299 777 860 151 119 497 234 788 | Export-Excel -Path $path -ConditionalText $ct @@ -393,7 +393,7 @@ Describe ExportExcel { } #Test adding mutliple conditional blocks and using the minimal syntax for new-ConditionalText - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-item -Path $path -ErrorAction SilentlyContinue #Testing -Passthrough @@ -457,11 +457,9 @@ Describe ExportExcel { } Context "#Examples 8 & 9 # Adding Pivot tables and charts from parameters" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" #Test -passthru and -worksheetName creating a new, named, sheet in an existing file. - $Script:Procs= Get-Process | Select-Object -first 20 -Property Name, cpu, pm, handles, company - if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} - $Excel = $Script:Procs| Export-Excel $path -WorkSheetname Processes -PassThru + $Excel = Get-Process | Select-Object -first 20 -Property Name, cpu, pm, handles, company | Export-Excel $path -WorkSheetname Processes -PassThru #Testing -Excel Pacakage and adding a Pivot-table as a second step. Want to save and re-open it ... Export-Excel -ExcelPackage $Excel -WorkSheetname Processes -IncludePivotTable -PivotRows Company -PivotData PM -NoTotalsInPivot -PivotDataToColumn -Activate @@ -518,7 +516,7 @@ Describe ExportExcel { } Context " # Add-Worksheet inserted sheets, moved them correctly, and copied a sheet" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" #Test the -CopySource and -Movexxxx parameters for Add-WorkSheet $Excel = Open-ExcelPackage $path #At this point Sheets Should be in the order Sheet1, Processes, ProcessesPivotTable @@ -540,7 +538,7 @@ Describe ExportExcel { $excel.Workbook.Worksheets[5].Name | Should be "Processes" $excel.Workbook.Worksheets[6].Name | Should be "NearDone" $excel.Workbook.Worksheets[7].Name | Should be "Sheet1" - } -skip:($Procs.count -lt 20) + } it "Cloned 'Sheet1' to 'NewSheet' " { $newWs = $excel.Workbook.Worksheets["NewSheet"] @@ -553,15 +551,13 @@ Describe ExportExcel { } Context " # Create and append with Start row and Start Column, inc ranges and Pivot table. " { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" remove-item -Path $path -ErrorAction SilentlyContinue #Catch warning $warnVar = $null #Test -Append with no existing sheet. Test adding a named pivot table from command line parameters and extending ranges when they're not specified explictly - $Script:Procs= Get-Process - if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} - $Script:Procs| Select-Object -First 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -PivotFilter Name -NoTotalsInPivot -RangeName procs -AutoFilter -AutoNameRange - $Script:Procs| Select-Object -Last 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -WarningAction SilentlyContinue -WarningVariable warnvar + Get-Process | Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -PivotFilter Name -NoTotalsInPivot -RangeName procs -AutoFilter -AutoNameRange + Get-Process | Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -StartRow 3 -StartColumn 3 -BoldTopRow -IncludePivotTable -PivotRows Company -PivotData PM -PivotTableName 'PTOffset' -Path $path -WorkSheetname withOffset -Append -WarningAction SilentlyContinue -WarningVariable warnvar $Excel = Open-ExcelPackage $path $dataWs = $Excel.Workbook.Worksheets["withOffset"] $pt = $Excel.Workbook.Worksheets["PTOffset"].PivotTables[0] @@ -605,14 +601,11 @@ Describe ExportExcel { } Context " # Create and append explicit and auto table and range extension" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" #Test -Append automatically extends a table, even when it is not specified in the append command; - $Script:Procs= Get-process - if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} - - $Script:Procs| Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -TableName ProcTab -AutoNameRange -WorkSheetname NoOffset -ClearSheet + Get-Process | Select-Object -first 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -TableName ProcTab -AutoNameRange -WorkSheetname NoOffset -ClearSheet #Test number format applying to new data - $Script:Procs| Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -AutoNameRange -WorkSheetname NoOffset -Append -Numberformat 'Number' + Get-Process | Select-Object -last 10 -Property Name, cpu, pm, handles, company | Export-Excel -Path $path -AutoNameRange -WorkSheetname NoOffset -Append -Numberformat 'Number' $Excel = Open-ExcelPackage $path $dataWs = $Excel.Workbook.Worksheets["NoOffset"] @@ -641,7 +634,7 @@ Describe ExportExcel { } Context "#Example 11 # Create and append with title, inc ranges and Pivot table" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" #Test New-PivotTableDefinition builds definition using -Pivotfilter and -PivotTotals options. $ptDef = [ordered]@{} $ptDef += New-PivotTableDefinition -PivotTableName "PT1" -SourceWorkSheet 'Sheet1' -PivotRows "Status" -PivotData @{'Status' = 'Count'} -PivotTotals Columns -PivotFilter "StartType" -IncludePivotChart -ChartType BarClustered3D -ChartTitle "Services by status" -ChartHeight 512 -ChartWidth 768 -ChartRow 10 -ChartColumn 0 -NoLegend -PivotColumns CanPauseAndContinue @@ -723,7 +716,7 @@ Describe ExportExcel { } Context "#Example 13 # Formatting and another way to do a pivot. " { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-Item $path #Test freezing top row/first column, adding formats and a pivot table - from Add-Pivot table not a specification variable - after the export $excel = Get-Process | Select-Object -Property Name, Company, Handles, CPU, PM, NPM, WS | Export-Excel -Path $path -ClearSheet -WorkSheetname "Processes" -FreezeTopRowFirstColumn -PassThru @@ -752,6 +745,8 @@ Describe ExportExcel { } it "Applied the formating " { $sheet | Should not beNullOrEmpty + $sheet.Column(1).wdith | Should not be $sheet.DefaultColWidth + $sheet.Column(7).wdith | Should not be $sheet.DefaultColWidth $sheet.Column(1).style.font.bold | Should be $true $sheet.Column(2).style.wraptext | Should be $true $sheet.Column(2).width | Should be 29 @@ -774,10 +769,6 @@ Describe ExportExcel { $sheet.ConditionalFormatting[2].Formula | Should be '104857600' $sheet.ConditionalFormatting[2].Style.Font.Color.Color.Name | Should be 'ffff0000' } - it "Applied autowidth " { - $sheet.Column(1).wdith | Should not be $sheet.DefaultColWidth - $sheet.Column(7).wdith | Should not be $sheet.DefaultColWidth - } -skip:$notwindows it "Created the named ranges " { $sheet.Names.Count | Should be 7 $sheet.Names[0].Start.Column | Should be 1 @@ -805,7 +796,7 @@ Describe ExportExcel { } Context " # Chart from MultiSeries.ps1 in the Examples\charts Directory" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #Test we haven't missed any parameters on New-ChartDefinition which are on add chart or vice versa. @@ -828,7 +819,7 @@ Describe ExportExcel { $data[1].Handles | Should not beNullOrEmpty $data[1].PM | Should not beNullOrEmpty $data[1].VirtualMemorySize | Should not beNullOrEmpty - } -skip:($procs.count -lt 20) + } $c = New-ExcelChartDefinition -Title Stats -ChartType LineMarkersStacked -XRange "Processes[Name]" -YRange "Processes[PM]", "Processes[VirtualMemorySize]" -SeriesHeader 'PM', 'VMSize' it "Created the Excel chart definition " { @@ -863,7 +854,7 @@ Describe ExportExcel { } Context " # variation of plot.ps1 from Examples Directory using Add chart outside ExportExcel" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" #Test inserting a fomual $excel = 0..360 | ForEach-Object {[pscustomobject][ordered]@{x = $_; Sinx = "=Sin(Radians(x)) "}} | Export-Excel -AutoNameRange -Path $path -WorkSheetname SinX -ClearSheet -FreezeFirstColumn -PassThru #Test-Add Excel Chart to existing data. Test add Conditional formatting with a formula @@ -905,7 +896,7 @@ Describe ExportExcel { } Context " # Quick line chart" { - $path = "TestDrive:\Test.xlsx" + $path = "TestDrive:\test.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue #test drawing a chart when data doesn't have a string 0..360 | ForEach-Object {[pscustomobject][ordered]@{x = $_; Sinx = "=Sin(Radians(x)) "}} | Export-Excel -AutoNameRange -Path $path -LineChart @@ -925,8 +916,6 @@ Describe ExportExcel { Context " # Quick Pie chart and three icon conditional formating" { $path = "TestDrive:\Pie.xlsx" Remove-Item -Path $path -ErrorAction SilentlyContinue - $Script:Procs= Get-Process - if ($Procs.count -lt 20) {Write-warning "Not enough proceses were returned by get-Process to run the test." ; return} $range = Get-Process| Group-Object -Property company | Where-Object -Property name | Select-Object -Property Name, @{n="TotalPm";e={($_.group | Measure-Object -sum -Property pm).sum }} | Export-Excel -NoHeader -AutoNameRange -path $path -ReturnRange -PieChart -ShowPercent @@ -1038,26 +1027,24 @@ Describe ExportExcel { $ExcelPackage.File | Should Be $Path $Worksheet.Tables[0].Name | Should Be 'Table1' } - it "Now will use temp Path, set TableName with generated name".PadRight(87) { + it "Now will use temp Path, set TableName with generated name and AutoSize".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru - $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $ExcelPackage.File | Should BeLike ([IO.Path]::GetTempPath() + '*') - $Script:Worksheet.Tables[0].Name | Should Be 'Table1' - $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty} - it "Applies AutoSize with these".PadRight(87) { - $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 - } -skip:$notwindows + $Worksheet.Tables[0].Name | Should Be 'Table1' + $Worksheet.AutoFilterAddress | Should BeNullOrEmpty + $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 + } it "Now allows override of Path and TableName".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru -Path $Path -TableName:$false - $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $Worksheet = $ExcelPackage.Workbook.Worksheets[1] $ExcelPackage.File | Should Be $Path - $Script:Worksheet.Tables | Should BeNullOrEmpty - $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty + $Worksheet.Tables | Should BeNullOrEmpty + $Worksheet.AutoFilterAddress | Should BeNullOrEmpty + $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 } - it "Allows AutoSize with the override".PadRight(87) { - $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 - } -skip:$notwindows <# Mock looks unreliable need to check Mock -CommandName 'Invoke-Item' it "Now will Show".PadRight(87) { @@ -1079,14 +1066,12 @@ Describe ExportExcel { } it "Now allows to set TableName".PadRight(87) { $ExcelPackage = $Processes | Export-Excel -Now -PassThru -TableName 'Data' - $Script:Worksheet = $ExcelPackage.Workbook.Worksheets[1] + $Worksheet = $ExcelPackage.Workbook.Worksheets[1] - $Script:Worksheet.Tables[0].Name | Should Be 'Data' - $Script:Worksheet.AutoFilterAddress | Should BeNullOrEmpty + $Worksheet.Tables[0].Name | Should Be 'Data' + $Worksheet.AutoFilterAddress | Should BeNullOrEmpty + $Worksheet.Column(5).Width | Should BeGreaterThan 9.5 } - it "Allows to set TableName with AutoSize".PadRight(87) { - $Script:Worksheet.Column(5).Width | Should BeGreaterThan 9.5 - } -skip:$notwindows } } diff --git a/__tests__/ExtraLongCmd.tests.ps1 b/__tests__/ExtraLongCmd.tests.ps1 index 8559a0d..18f2632 100644 --- a/__tests__/ExtraLongCmd.tests.ps1 +++ b/__tests__/ExtraLongCmd.tests.ps1 @@ -1,4 +1,3 @@ -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } Describe "Creating workbook with a single line" { diff --git a/__tests__/First10Races.tests.ps1 b/__tests__/First10Races.tests.ps1 index 02a66ad..d9ec924 100644 --- a/__tests__/First10Races.tests.ps1 +++ b/__tests__/First10Races.tests.ps1 @@ -1,6 +1,4 @@ -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } - -$scriptPath = Split-Path -Path $MyInvocation.MyCommand.path -Parent +$scriptPath = Split-Path -Path $MyInvocation.MyCommand.path -Parent $dataPath = Join-Path -Path $scriptPath -ChildPath "First10Races.csv" Describe "Creating small named ranges with hyperlinks" { diff --git a/__tests__/InputItemParameter.tests.ps1 b/__tests__/InputItemParameter.tests.ps1 index 6f2243e..f85739b 100644 --- a/__tests__/InputItemParameter.tests.ps1 +++ b/__tests__/InputItemParameter.tests.ps1 @@ -1,5 +1,3 @@ -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } - Describe "Exporting with -Inputobject" { BeforeAll { $path = "TestDrive:\Results.xlsx" diff --git a/__tests__/Join-Worksheet.tests.ps1 b/__tests__/Join-Worksheet.tests.ps1 index 446e1dd..d1e97a6 100644 --- a/__tests__/Join-Worksheet.tests.ps1 +++ b/__tests__/Join-Worksheet.tests.ps1 @@ -1,7 +1,4 @@ -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } -$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) - -$data1 = ConvertFrom-Csv -InputObject @" +$data1 = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price,Total 12001,Nails,37,3.99,147.63 12002,Hammer,5,12.10,60.5 @@ -97,7 +94,6 @@ Describe "Join Worksheet part 1" { Remove-item -Path $path -ErrorAction SilentlyContinue #switched to CIM objects so test runs on V6 Describe "Join Worksheet part 2" { - if ($notWindows) {Write-warning -message "Test only runs on Windows" ; return} Get-CimInstance -ClassName win32_logicaldisk | Select-Object -Property DeviceId,VolumeName, Size,Freespace | Export-Excel -Path $path -WorkSheetname Volumes -NumberFormat "0,000" diff --git a/__tests__/RangePassing.ps1 b/__tests__/RangePassing.ps1 index e8f04f4..e0dc770 100644 --- a/__tests__/RangePassing.ps1 +++ b/__tests__/RangePassing.ps1 @@ -1,6 +1,5 @@ $path = "TestDrive:\test.xlsx" describe "Consistent passing of ranges." { - if ($notWindows) {Write-warning -message "Test uses get-service so only works on Windows" ; return} Context "Conditional Formatting" { Remove-Item -path $path -ErrorAction SilentlyContinue $excel = Get-Service | Export-Excel -Path $path -WorksheetName Services -PassThru -AutoSize -DisplayPropertySet -AutoNameRange -Title "Services on $Env:COMPUTERNAME" diff --git a/__tests__/Validation.tests.ps1 b/__tests__/Validation.tests.ps1 index 62d055d..8fe59eb 100644 --- a/__tests__/Validation.tests.ps1 +++ b/__tests__/Validation.tests.ps1 @@ -1,7 +1,3 @@ -Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force -if (-not $env:TEMP) {$env:TEMP = [IO.Path]::GetTempPath() -replace "/$","" } -$notWindows = ($PSVersionTable.os -and $PSVersionTable.os -notMatch 'Windows' ) - $data = ConvertFrom-Csv -InputObject @" ID,Product,Quantity,Price 12001,Nails,37,3.99