Skip to content

Commit d78d6bb

Browse files
committed
Adding column name verifications
1 parent e2a40c0 commit d78d6bb

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

tests/postgresql/Invoke-DBOQuery.Tests.ps1

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,22 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
5151
It "should run the query" {
5252
$query = "SELECT 1 AS A, 2 AS B UNION ALL SELECT NULL AS A, 4 AS B"
5353
$result = Invoke-DBOQuery -Query $query @connParams -As DataTable
54+
$result.Columns.ColumnName | Should -Be @('A', 'B')
5455
$result.A | Should -Be 1, ([DBNull]::Value)
5556
$result.B | Should -Be 2, 4
5657
}
5758
It "should select NULL" {
5859
$query = "SELECT NULL"
5960
$result = Invoke-DBOQuery -Query $query @connParams -As DataTable
61+
$result.Columns.ColumnName | Should -Be @('Column1')
6062
$result.Column1 | Should -Be ([DBNull]::Value)
6163
}
6264
It "should run the query with semicolon" {
6365
$query = "SELECT 1 AS A, 2 AS B;
6466
SELECT 3 AS A, 4 AS B"
6567
$result = Invoke-DBOQuery -Query $query @connParams -As DataTable
68+
$result[0].Columns.ColumnName | Should -Be @('A', 'B')
69+
$result[1].Columns.ColumnName | Should -Be @('A', 'B')
6670
$result[0].A | Should -Be 1
6771
$result[0].B | Should -Be 2
6872
$result[1].A | Should -Be 3
@@ -72,6 +76,8 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
7276
$query = "SELECT 1 AS A, 2 AS B;
7377
SELECT 3 AS A, 4 AS B"
7478
$result = Invoke-DBOQuery -Query $query @connParams -As Dataset
79+
$result.Tables[0].Columns.ColumnName | Should Be @('A', 'B')
80+
$result.Tables[1].Columns.ColumnName | Should Be @('A', 'B')
7581
$result.Tables[0].A | Should -Be 1
7682
$result.Tables[0].B | Should -Be 2
7783
$result.Tables[1].A | Should -Be 3
@@ -80,6 +86,7 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
8086
It "should run the query as a PSObject" {
8187
$query = "SELECT 1 AS A, 2 AS B UNION ALL SELECT NULL AS A, 4 AS B"
8288
$result = Invoke-DBOQuery -Query $query @connParams -As PSObject
89+
$result[0].psobject.properties.Name | Should -Be @('A', 'B')
8390
$result.A | Should -Be 1, $null
8491
$result.B | Should -Be 2, 4
8592
}
@@ -94,6 +101,8 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
94101
"SELECT 1 AS A, 2 AS B" | Out-File $file1 -Force
95102
"SELECT 3 AS A, 4 AS B" | Out-File $file2 -Force -Encoding bigendianunicode
96103
$result = Invoke-DBOQuery -InputFile $file1, $file2 @connParams -As DataTable
104+
$result[0].Columns.ColumnName | Should -Be @('A', 'B')
105+
$result[1].Columns.ColumnName | Should -Be @('A', 'B')
97106
$result[0].A | Should -Be 1
98107
$result[0].B | Should -Be 2
99108
$result[1].A | Should -Be 3
@@ -105,11 +114,15 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
105114
"SELECT 1 AS A, 2 AS B" | Out-File $file1 -Force
106115
"SELECT 3 AS A, 4 AS B" | Out-File $file2 -Force -Encoding bigendianunicode
107116
$result = Get-Item $file1, $file2 | Invoke-DBOQuery @connParams -As DataTable
117+
$result[0].Columns.ColumnName | Should -Be @('A', 'B')
118+
$result[1].Columns.ColumnName | Should -Be @('A', 'B')
108119
$result[0].A | Should -Be 1
109120
$result[0].B | Should -Be 2
110121
$result[1].A | Should -Be 3
111122
$result[1].B | Should -Be 4
112123
$result = $file1, $file2 | Invoke-DBOQuery @connParams -As DataTable
124+
$result[0].Columns.ColumnName | Should -Be @('A', 'B')
125+
$result[1].Columns.ColumnName | Should -Be @('A', 'B')
113126
$result[0].A | Should -Be 1
114127
$result[0].B | Should -Be 2
115128
$result[1].A | Should -Be 3
@@ -118,12 +131,14 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
118131
It "should run the query with custom variables" {
119132
$query = "SELECT '#{Test}' AS A, '#{Test2}' AS B UNION ALL SELECT '3' AS A, '4' AS B"
120133
$result = Invoke-DBOQuery -Query $query @connParams -As DataTable -Variables @{ Test = '1'; Test2 = '2'}
134+
$result.Columns.ColumnName | Should -Be @('A', 'B')
121135
$result.A | Should -Be '1', '3'
122136
$result.B | Should -Be '2', '4'
123137
}
124138
It "should connect to the server from a custom variable" {
125139
$query = "SELECT 1 AS A, 2 AS B UNION ALL SELECT 3 AS A, 4 AS B"
126-
$result = Invoke-DBOQuery -Type PostgreSQL -Database postgres -Query $query -SqlInstance '#{srv}' -Credential $script:postgresqlCredential -As DataTable -Variables @{ Srv = $script:postgresqlInstance }
140+
$result = Invoke-DBOQuery -Type PostgreSQL -Database postgres -Query $query -SqlInstance '#{srv}' -Credential $script:postgresqlCredential -As DataTable -Variables @{ srv = $script:postgresqlInstance }
141+
$result.Columns.ColumnName | Should -Be @('A', 'B')
127142
$result.A | Should -Be '1', '3'
128143
$result.B | Should -Be '2', '4'
129144
}
@@ -154,7 +169,9 @@ Describe "Invoke-DBOQuery PostgreSQL tests" -Tag $commandName, IntegrationTests
154169
}
155170
It "should throw a connection timeout error" {
156171
$query = "SELECT 1/0"
157-
{ $null = Invoke-DBOQuery -Type PostgreSQL -Query $query -SqlInstance localhost:6493 -Credential $script:postgresqlCredential -ConnectionTimeout 1} | Should throw "The operation has timed out"
172+
try { $null = Invoke-DBOQuery -Type PostgreSQL -Query $query -SqlInstance localhost:6493 -Credential $script:postgresqlCredential -ConnectionTimeout 1}
173+
catch { $errVar = $_ }
174+
$errVar.Exception.Message | Should -Match "The operation has timed out|Connection refused"
158175
}
159176
It "should fail when credentials are wrong" {
160177
try { Invoke-DBOQuery -Type PostgreSQL -Query 'SELECT 1' -SqlInstance $script:postgresqlInstance -Credential ([pscredential]::new('nontexistent', ([securestring]::new()))) }

0 commit comments

Comments
 (0)