Tests/Get-ADAvailableDomainController.Tests.ps1

[Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseDeclaredVarsMoreThanAssignments", "")]
param()

BeforeAll {
    # Import the script file
    $sPath = ($PSScriptRoot).Replace("Tests","Public") + "\Get-ADAvailableDomainController.ps1"

    . $sPath

    Function Resolve-DnsName {}
}

Describe "Get-ADAvailableDomainController" {
    Context "Return a server" {
        BeforeAll {
            mock Resolve-DnsName { return @("DC1.mydomain.com","DC2.mydomain.com") }
            mock Get-ADDomainControllerDirectoryEntry { 
                return [PSCustomObject] @{
                    defaultNamingContext = "this is a response"
                }
            }
        }

        Get-ADAvailableDomainController -DnsDomainName "mydomain.com" -Verbose | Should -be "DC1.mydomain.com"
    }
}