diff --git a/DnsClientX.PowerShell/CmdletResolveDnsQuery.cs b/DnsClientX.PowerShell/CmdletResolveDnsQuery.cs index ad165f49..5f7f3344 100644 --- a/DnsClientX.PowerShell/CmdletResolveDnsQuery.cs +++ b/DnsClientX.PowerShell/CmdletResolveDnsQuery.cs @@ -89,7 +89,8 @@ public sealed class CmdletResolveDnsQuery : AsyncPSCmdlet { [Alias("ServerName")] [Parameter(Mandatory = false, ParameterSetName = "ServerName")] [Parameter(Mandatory = false, ParameterSetName = "PatternServerName")] - public List Server = new List(); + [ValidateNotNull] + public List Server { get; set; } = new List(); /// /// One or more resolver endpoints in string format. Accepted: "1.1.1.1:53", "[2606:4700:4700::1111]:53", "dns.google:53", or DoH URLs like "https://dns.google/dns-query". diff --git a/Module/Tests/ResolveDnsBinding.Tests.ps1 b/Module/Tests/ResolveDnsBinding.Tests.ps1 new file mode 100644 index 00000000..cfbeac37 --- /dev/null +++ b/Module/Tests/ResolveDnsBinding.Tests.ps1 @@ -0,0 +1,16 @@ +Import-Module "$PSScriptRoot/../DnsClientX.psd1" -Force + +Describe 'Resolve-Dns binding' { + It 'exposes Server parameter with ServerName alias and list type' { + $cmd = Get-Command Resolve-Dns + $parameter = $cmd.Parameters['Server'] + + $parameter | Should -Not -BeNullOrEmpty + $parameter.Aliases | Should -Contain 'ServerName' + $parameter.ParameterType | Should -Be ([System.Collections.Generic.List[string]]) + } + + It 'rejects null Server values during binding' { + { Resolve-Dns -Name 'example.com' -Server $null -ErrorAction Stop } | Should -Throw -ExceptionType ([System.Management.Automation.ParameterBindingException]) + } +}