155 lines
4.0 KiB
PowerShell
155 lines
4.0 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 "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
|
||
|
}
|
||
|
}
|
||
|
}
|