126 lines
5.4 KiB
PowerShell
126 lines
5.4 KiB
PowerShell
. $PSScriptRoot\..\..\Load-PesterModules.ps1
|
|
$here = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
$sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.tests\.', '.'
|
|
$functionPath = Join-Path -Path $here -ChildPath $sut
|
|
Write-Host "Overriding SUT: $functionPath"
|
|
Import-Module $functionPath -Force
|
|
$moduleForMock = ""
|
|
|
|
Describe "Split-ConnectionString" {
|
|
Context "Parameter Validation" {
|
|
It "Throws on Null ConnectionString" {
|
|
{ Split-ConnectionString -ConnectionString $null } | Should Throw
|
|
}
|
|
|
|
It "Throws on Invalid Connection String" {
|
|
{ Split-ConnectionString -ConnectionString "Invalid Connection String" } | Should Throw
|
|
}
|
|
|
|
It "Throws on Invalid Integrated Security Value" {
|
|
# this value is boolean, which behind the scenes can be converted from SSPI to true, or read as true/false, or empty as false
|
|
$testConnectionString = "data source=Test-DataSource;Integrated Security=INVALIDVALUE;Database=TestDatabase;MultiSubnetFailover=True"
|
|
{ Split-ConnectionString -ConnectionString $testConnectionString } | Should Throw
|
|
}
|
|
|
|
It "Throws on Invalid MultiSubnet Failover Value" {
|
|
$testConnectionString = "data source=Test-DataSource;Integrated Security=SSPI;Database=TestDatabase;MultiSubnetFailover=INVALIDVALUE"
|
|
{ Split-ConnectionString -ConnectionString $testConnectionString } | Should Throw
|
|
}
|
|
}
|
|
|
|
Context "Returns Correct Datatype" {
|
|
$testConnectionString = "data source=Test-DataSource;Integrated Security=SSPI;Database=TestDatabase;MultiSubnetFailover=True"
|
|
$shortTestConnectionString = "data source=Test-DataSource;Database=TestDatabase;"
|
|
|
|
It "Returns Type PSCustomObject Without Full Parameter" {
|
|
{ Split-ConnectionString -ConnectionString $testConnectionString } | Should -BeOfType [PSCustomObject]
|
|
}
|
|
|
|
It "Returns Type PSCustomObject Without Full Parameter And With Minimal Connection String" {
|
|
{ Split-ConnectionString -ConnectionString $shortTestConnectionString } | Should -BeOfType [PSCustomObject]
|
|
}
|
|
|
|
It "Returns Type PSCustomObject With Full Parameter" {
|
|
{ Split-ConnectionString -ConnectionString $testConnectionString -Full} | Should -BeOfType [PSCustomObject]
|
|
}
|
|
|
|
It "Returns Type PSCustomObject With Full Parameter And With Minimal Connection String" {
|
|
{ Split-ConnectionString -ConnectionString $shortTestConnectionString -Full } | Should -BeOfType [PSCustomObject]
|
|
}
|
|
|
|
}
|
|
|
|
Context "Returns Data Correctly Without Full Parameter" {
|
|
$testConnectionString = "data source=Test-DataSource;Integrated Security=SSPI;Database=TestDatabase;MultiSubnetFailover=True"
|
|
$return = Split-ConnectionString -ConnectionString $testConnectionString
|
|
|
|
It "Returns DataSource" {
|
|
$return.DataSource | Should -Be "Test-DataSource"
|
|
}
|
|
|
|
# Integrated Security is a boolean - set as either true or SSPI in connection string for same result
|
|
It "Returns IntegratedSecurity" {
|
|
$return.IntegratedSecurity | Should -BeTrue
|
|
}
|
|
|
|
# Database in connection string converted to InitialCatalog
|
|
It "Returns InitialCatalog" {
|
|
$return.InitialCatalog | Should -Be "TestDatabase"
|
|
}
|
|
|
|
It "Returns MultiSubnetFailover" {
|
|
$return.MultiSubnetFailover | Should -BeTrue
|
|
}
|
|
}
|
|
|
|
Context "Returns Data Correctly With Minimal Connection String Without Full Parameter" {
|
|
$testConnectionString = "data source=Test-DataSource;Database=TestDatabase;"
|
|
$return = Split-ConnectionString -ConnectionString $testConnectionString
|
|
|
|
It "Returns DataSource" {
|
|
$return.DataSource | Should -Be "Test-DataSource"
|
|
}
|
|
|
|
# Integrated Security is a boolean - set as either true or SSPI in connection string for same result
|
|
It "Returns IntegratedSecurity" {
|
|
$return.IntegratedSecurity | Should -BeFalse
|
|
}
|
|
|
|
# Database in connection string converted to InitialCatalog
|
|
It "Returns InitialCatalog" {
|
|
$return.InitialCatalog | Should -Be "TestDatabase"
|
|
}
|
|
|
|
It "Returns MultiSubnetFailover" {
|
|
$return.MultiSubnetFailover | Should -BeFalse
|
|
}
|
|
}
|
|
|
|
Context "Returns Data Correctly With Full Parameter" {
|
|
$testConnectionString = "data source=Test-DataSource;Integrated Security=SSPI;Database=TestDatabase;MultiSubnetFailover=True"
|
|
$return = Split-ConnectionString -ConnectionString $testConnectionString -Full
|
|
|
|
It "Returns DataSource" {
|
|
$return.DataSource | Should -Be "Test-DataSource"
|
|
}
|
|
|
|
# Integrated Security is a boolean - set as either true or SSPI in connection string for same result
|
|
It "Returns IntegratedSecurity" {
|
|
$return.IntegratedSecurity | Should -BeTrue
|
|
}
|
|
|
|
# Database in connection string converted to InitialCatalog
|
|
It "Returns InitialCatalog" {
|
|
$return.InitialCatalog | Should -Be "TestDatabase"
|
|
}
|
|
|
|
It "Returns MultiSubnetFailover" {
|
|
$return.MultiSubnetFailover | Should -BeTrue
|
|
}
|
|
|
|
# validate more than the basic 4 properties are being returned. keys isn't working.
|
|
It "Returns PacketSize" {
|
|
$return.PacketSize | Should -BeOfType [Int32]
|
|
}
|
|
}
|
|
} |