Files
runner-images/images/windows/scripts/tests/Databases.Tests.ps1
2024-11-29 11:08:29 +01:00

99 lines
3.0 KiB
PowerShell

Describe "MongoDB" {
Context "Version" {
It "<ToolName>" -TestCases @(
if (Test-IsWin25) {
@{ ToolName = "mongos" }
} else {
@{ ToolName = "mongo" }
}
@{ ToolName = "mongod" }
) {
$toolsetVersion = (Get-ToolsetContent).mongodb.version
(& $ToolName --version)[2].Split('"')[-2] | Should -BeLike "$toolsetVersion*"
}
}
Context "Service" {
$mongoService = Get-Service -Name mongodb -ErrorAction Ignore
$mongoServiceTests = @{
Name = $mongoService.Name
Status = $mongoService.Status
StartType = $mongoService.StartType
}
It "<Name> service is stopped" -TestCases $mongoServiceTests {
$Status | Should -Be "Stopped"
}
It "<Name> service is disabled" -TestCases $mongoServiceTests {
$StartType | Should -Be "Disabled"
}
}
Context "Shell" -Skip:(-not (Test-IsWin19) -or -not (Test-IsWin22)) {
"mongosh --version" | Should -Not -BeNullOrEmpty
}
}
Describe "PostgreSQL" {
$psqlTests = @(
@{envVar = "PGROOT"; pgPath = Get-EnvironmentVariable "PGROOT" }
@{envVar = "PGBIN"; pgPath = Get-EnvironmentVariable "PGBIN" }
@{envVar = "PGDATA"; pgPath = Get-EnvironmentVariable "PGDATA" }
)
Context "Environment variable" {
It "PGUSER contains postgres" {
Get-EnvironmentVariable "PGUSER" | Should -Be "postgres"
}
It "PGPASSWORD contains root" {
Get-EnvironmentVariable "PGPASSWORD" | Should -Be "root"
}
It "<envVar> environment variable exists" -TestCases $psqlTests {
Get-EnvironmentVariable $envVar | Should -Not -BeNullOrEmpty
}
}
Context "Path" {
It "<pgPath> path exists" -TestCases $psqlTests {
$pgPath | Should -Exist
}
}
Context "Service" {
$psqlService = Get-Service -Name postgresql*
$psqlServiceTests = @{
Name = $psqlService.Name
Status = $psqlService.Status
StartType = $psqlService.StartType
}
It "<Name> service is stopped" -TestCases $psqlServiceTests {
$Status | Should -Be "Stopped"
}
It "<Name> service is disabled" -TestCases $psqlServiceTests {
$StartType | Should -Be "Disabled"
}
}
Context "PostgreSQL version" {
It "PostgreSQL version should correspond to the Major version in the toolset" {
$toolsetVersion = (Get-ToolsetContent).postgresql.version.Split(".")[0]
# Client version
(& $env:PGBIN\psql --version).split()[-1] | Should -BeLike "$toolsetVersion*"
# Server version
(& $env:PGBIN\pg_config --version).split()[-1] | Should -BeLike "$toolsetVersion*"
}
}
}
Describe "MySQL" {
It "MySQL CLI" {
$MysqlVersion = (Get-ToolsetContent).mysql.version
mysql -V | Should -BeLike "*${MysqlVersion}*"
}
}