Tests/GenXdev.Data.SqlServer/New-SQLServerDatabase.Tests.ps1
Pester\Describe 'New-SQLServerDatabase' { Pester\BeforeAll { Microsoft.PowerShell.Utility\Write-Verbose 'Setting up test environment' $script:TestDatabaseName = 'GenXdevTest_' + (Microsoft.PowerShell.Utility\Get-Random) $script:TestServer = '.' # Check if SQL Server is available $script:SqlServerAvailable = $false try { GenXdev.Data\Invoke-SQLServerQuery -DatabaseName 'master' -Server $script:TestServer -Queries "SELECT 1" $script:SqlServerAvailable = $true } catch { Microsoft.PowerShell.Utility\Write-Verbose "SQL Server not available - skipping tests" } } Pester\AfterAll { # Clean-up if ($script:SqlServerAvailable) { try { $dropQuery = "IF EXISTS (SELECT name FROM sys.databases WHERE name = '$script:TestDatabaseName') DROP DATABASE [$script:TestDatabaseName]" GenXdev.Data\Invoke-SQLServerQuery -DatabaseName 'master' -Server $script:TestServer -Queries $dropQuery } catch { Microsoft.PowerShell.Utility\Write-Warning "Could not clean up test database: $_" } } } Pester\It 'Should create a new database' -Skip:(-not $script:SqlServerAvailable) { GenXdev.Data\New-SQLServerDatabase -DatabaseName $script:TestDatabaseName -Server $script:TestServer -WhatIf:$false # Verify database was created $checkQuery = "SELECT database_id FROM sys.databases WHERE name = '$script:TestDatabaseName'" $result = GenXdev.Data\Invoke-SQLServerQuery -DatabaseName 'master' -Server $script:TestServer -Queries $checkQuery $result | Pester\Should -Not -BeNullOrEmpty } Pester\It 'Should support WhatIf parameter' -Skip:(-not $script:SqlServerAvailable) { { GenXdev.Data\New-SQLServerDatabase -DatabaseName 'TestWhatIf' -Server $script:TestServer -WhatIf } | Pester\Should -Not -Throw } } |