Public/DotNet/Test-Symbol.ps1

function Test-Symbol {
    [CmdletBinding()]
    param (
        [parameter(Mandatory, ValueFromPipeline)]
        [System.IO.FileInfo]$pdb,
        [parameter()]
        [string]$file,
        [parameter()]
        [ValidateSet("Check", "Match")]
        [string]$Mode = "Check",
        [parameter()]
        [string]$chckMatch = "$PSScriptRoot\..\..\Private\ChkMatch.exe"
    )
    
    begin {
        if (!(test-path $chckMatch)) {
            throw "$chckMatch is invalid"
        }
        $pdbFile = (get-item $pdb)
        if (!$File) {
            $file = "$($pdbFile.DirectoryName)\$($pdbFile.BaseName).dll"
        }
        if (!(Test-Path $file)) {
            throw [System.IO.FileNotFoundException]::new($file)
        }
    }
    
    process {
        if ($Mode -eq "Check") {
            & $chckMatch -c $file $pdbFile.FullName
        }
        else {
            & $chckMatch -m $file $pdbFile.FullName
        }
    }
    
    end {
    }
}