. $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 } } }