Tests/Invoke-AdoQuery.Tests.ps1
$CommandName = $MyInvocation.MyCommand.Name.Replace(".Tests.ps1", "") # go "one up" from the Tests folder $Path = Split-Path -Parent -Path $PSScriptRoot $ManifestFile = (Get-ChildItem -Path $Path -Filter "*.psd1").FullName Import-Module $ManifestFile -DisableNameChecking -Force $TestConfiguration = Invoke-Expression -Command (Join-Path -Path $PSScriptRoot -ChildPath 'Get-LegacyDataTestValue.ps1') # We won't be needing any credentials for this set of tests # $SqlLoginCredential = (Invoke-Expression -Command (Join-Path -Path $PSScriptRoot -ChildPath 'Get-LegacyDataTestCredential.ps1')).SqlServerUser if ([Environment]::Is64BitProcess) { # If this fails, you might try ACE verisons other than 12 like 13, 14, 15, 16 and so forth # ACE has 32 bit and 64 bit drivers. $Provider = 'Microsoft.ACE.OLEDB.12.0' } else { # Jet was 32 bit only. $Provider = 'Microsoft.Jet.OLEDB.4.0' } $cp = @{ Provider = $Provider DataSource = $TestConfiguration.AccessPresidentPath } Describe "Ado simple query to '$($cp.DataSource)'" -Tag $CommandName, ADO { $Query = 'select * from presidents' $Report = Invoke-AdoQuery @cp -query $Query It "should return a result set" { $Report | Should -Not -BeNullOrEmpty } } # Invoke-AdoQuery does not support '-SqlParameters' like Invoke-OLEDBQuery does yet, so I'm commenting this out for use as a # template at some point in the future. # Describe "Ado query with SQLParameter to '$($cp.DataSource)'" -Tag $CommandName, ADO { # # this query uses the ? as a placeholder and not @SomeName because we are using ado and not sqlclient # $Query = 'select * from presidents where lastname = ?' # $Params = @{LastName = "roosevelt" } # $Report = Invoke-AdoQuery @cp -query $Query -SqlParameters $Params # It "should return a result set" { # $Report | # Should -Not -BeNullOrEmpty # } # } |