tests/functions/clone/New-DcnClone.Tests.ps1
$commandname = $MyInvocation.MyCommand.Name.Replace(".Tests.ps1", "") . "$PSScriptRoot\..\constants.ps1" Describe "$CommandName Unit Tests" -Tag 'UnitTests' { Context "Validate parameters" { [object[]]$params = (Get-ChildItem Function:\New-DcnClone).Parameters.Keys $knownParameters = 'SqlInstance', 'SqlCredential', 'DcnSqlCredential', 'Credential', 'ParentVhd', 'Destination', 'CloneName', 'Database', 'LatestImage', 'Disabled', 'Force', 'EnableException' It "Should contain our specific parameters" { ( (Compare-Object -ReferenceObject $knownParameters -DifferenceObject $params -IncludeEqual | Where-Object SideIndicator -eq "==").Count ) | Should Be $knownParameters.Count } } } Describe "$CommandName Integration Tests" -Tag "IntegrationTests" { BeforeAll { if (-not (Test-Path -Path $script:clonefolder)) { New-Item -Path $script:clonefolder -ItemType Directory } $server = Connect-DbaInstance -SqlInstance $script:sourcesqlinstance if ($server.Databases.Name -notcontains $script:database) { $query = "CREATE DATABASE $($script:database)" $server.Query($query) Invoke-DbaQuery -SqlInstance $script:sourcesqlinstance -Database $script:database -File "$($PSScriptRoot)\..\database.sql" } if (-not (Test-Path -Path $script:clonefolder)) { $null = New-Item -Path $script:clonefolder -ItemType Directory } $null = Set-DcnConfiguration -InformationStore File -Path $script:clonefolder -Force } AfterAll { $null = Remove-DbaDatabase -SqlInstance $script:sourcesqlinstance -Database $script:database -Confirm:$false } } |