From a69372594943a9281b2c8eae7e74c33f356ab94b Mon Sep 17 00:00:00 2001 From: dfinke Date: Sat, 24 Jul 2021 13:01:51 -0400 Subject: [PATCH] Add Tests --- __tests__/Read-Clipboard.tests.ps1 | 90 ++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 __tests__/Read-Clipboard.tests.ps1 diff --git a/__tests__/Read-Clipboard.tests.ps1 b/__tests__/Read-Clipboard.tests.ps1 new file mode 100644 index 0000000..152a9fe --- /dev/null +++ b/__tests__/Read-Clipboard.tests.ps1 @@ -0,0 +1,90 @@ +#Requires -Modules Pester +# if (-not (Get-command Import-Excel -ErrorAction SilentlyContinue)) { +Import-Module $PSScriptRoot\..\ImportExcel.psd1 -Force +# } +Describe "Read Clipboard" -Tag "Read-Clipboard" { + + It 'Should return $null if it cannot detect data format on the clipboard' { + $testData = 'abc' + $actual = ReadClipboardImpl $testData + $actual.Count | Should -Be 0 + $actual | Should -BeNullOrEmpty + } + + It 'Should return converted csv data' { + $testData = @" +Region,State,Units,Price +West,Texas,927,923.71 +North,Tennessee,466,770.67 +East,Florida,520,458.68 +"@ + $actual = ReadClipboardImpl $testData + $actual.count | Should -Be 3 + } + + It 'Should return converted tab delimited data' { + $testData = @" +YEAR PRESIDENT FIRST LADY VICE PRESIDENT +2021- Joseph R. Biden Jill Biden Kamala Harris +2017-2021 Donald J. Trump Melania Trump Mike Pence +2009-2017 Barack Obama Michelle Obama Joseph R. Biden +"@ + $actual = ReadClipboardImpl $testData + $actual.count | Should -Be 3 + } + + It 'Should return converted json data' { + $testData = @" +[ +{ + "YEAR": "2021-", + "PRESIDENT": "Joseph R. Biden", + "FIRST LADY": "Jill Biden", + "VICE PRESIDENT": "Kamala Harris" +}, +{ + "YEAR": "2017-2021", + "PRESIDENT": "Donald J. Trump", + "FIRST LADY": "Melania Trump", + "VICE PRESIDENT": "Mike Pence" +}, +{ + "YEAR": "2009-2017", + "PRESIDENT": "Barack Obama", + "FIRST LADY": "Michelle Obama", + "VICE PRESIDENT": "Joseph R. Biden" +} +] +"@ + $actual = ReadClipboardImpl $testData + $actual.count | Should -Be 3 + } + + It 'Should return converted "|" delimited data' { + $testData = @" +Region|State|Units|Price +West|Texas|927|923.71 +North|Tennessee|466|770.67 +East|Florida|520|458.68 +"@ + $actual = ReadClipboardImpl $testData -Delimiter '|' + $actual.count | Should -Be 3 + } + + It 'Should return converted data with headers' { + $testData = @" +West,Texas,927,923.71 +North,Tennessee,466,770.67 +East,Florida,520,458.68 +"@ + + $actual = ReadClipboardImpl $testData -Header 'P1', 'P2', 'p3', 'P4' + $actual.count | Should -Be 3 + + $propertyNames = $actual[0].psobject.Properties.Name + $propertyNames[0] | Should -BeExactly 'P1' + $propertyNames[1] | Should -BeExactly 'P2' + $propertyNames[2] | Should -BeExactly 'p3' + $propertyNames[3] | Should -BeExactly 'P4' + } +} \ No newline at end of file