ps/Modules/Alkami.PowerShell.Choco/Public/Test-ServiceManifestRequiresDbAccess.tests.ps1

155 lines
4.0 KiB
PowerShell
Raw Normal View History

2023-05-30 22:51:22 -07:00
. $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 "Test-ServiceManifestRequiresDbAccess" {
Mock -ModuleName $moduleForMock -CommandName Get-LogLeadName -MockWith { }
Mock -ModuleName $moduleForMock -CommandName Write-Host -MockWith { }
Context "When Service Manifest Is Null" {
$serviceManifest = $null
It "Returns False"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeFalse
}
}
Context "When Service Manifest Has Assemblies With A Role But No DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Assembly = @()
}
}
$serviceManifest.Migrations.Assembly += @{
role = "MyAssemblyRole"
}
$serviceManifest.Migrations.Assembly += @{
role = "MyOtherAssemblyRole"
}
It "Returns True"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeTrue
}
}
Context "When Service Manifest Has One or More Assemblies With A Role and One or More without But No DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Assembly = @()
}
}
$serviceManifest.Migrations.Assembly += @{
role = "MyAssemblyRole"
}
$serviceManifest.Migrations.Assembly += @{
role = ""
}
It "Returns True"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeTrue
}
}
Context "When Service Manifest Has Assemblies Without A Role And No DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Assembly = @()
}
}
$serviceManifest.Migrations.Assembly += @{
role = ""
}
$serviceManifest.Migrations.Assembly += @{
role = ""
}
It "Returns False"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeFalse
}
}
Context "When Service Manifest Has Packages But No DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Package = @{
}
}
}
It "Returns True"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeTrue
}
}
Context "When Service Manifest Has Assemblies And A DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Assembly = @{
role = ""
}
}
db_role = "MyRole"
}
It "Returns True"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeTrue
}
}
Context "When Service Manifest Has Packages And A DB Role" {
$serviceManifest = @{
Runtime = "Core"
Migrations = @{
Package = @{
}
}
db_role = "MyRole"
}
It "Returns True"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeTrue
}
}
Context "When Service Manifest Has Neither Packages Nor Assemblies Nor A DB Role" {
$serviceManifest = @{
Runtime = "Core"
}
It "Returns False"{
$results = Test-ServiceManifestRequiresDbAccess $serviceManifest
$results | Should -BeFalse
}
}
}