Import-Module (Join-Path $PSScriptRoot "..\SoftwareReport\SoftwareReport.Common.psm1") -DisableNameChecking Describe "Azure Cosmos DB Emulator" { $cosmosDbEmulatorRegKey = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" | Get-ItemProperty | Where-Object { $_.DisplayName -eq 'Azure Cosmos DB Emulator' } $installDir = $cosmosDbEmulatorRegKey.InstallLocation It "Azure Cosmos DB Emulator install location registry key exists" -TestCases @{installDir = $installDir} { $installDir | Should -Not -BeNullOrEmpty } It "Azure Cosmos DB Emulator exe file exists" -TestCases @{installDir = $installDir} { $exeFilePath = Join-Path $installDir 'CosmosDB.Emulator.exe' $exeFilePath | Should -Exist } } Describe "Bazel" { It "" -TestCases @( @{ ToolName = "bazel" } @{ ToolName = "bazelisk" } ) { "$ToolName --version"| Should -ReturnZeroExitCode } } Describe "CodeQLBundle" { It "CodeQLBundle" { $CodeQLVersionsWildcard = Join-Path $Env:AGENT_TOOLSDIRECTORY -ChildPath "codeql" | Join-Path -ChildPath "*" $CodeQLVersionPath = Get-ChildItem $CodeQLVersionsWildcard | Select-Object -First 1 -Expand FullName $CodeQLPath = Join-Path $CodeQLVersionPath -ChildPath "x64" | Join-Path -ChildPath "codeql" | Join-Path -ChildPath "codeql.exe" "$CodeQLPath version" | Should -ReturnZeroExitCode } } Describe "R" { It "Rscript" { "Rscript --version" | Should -ReturnZeroExitCode } } Describe "DACFx" { It "DACFx" { (Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*).DisplayName -Contains "Microsoft SQL Server Data-Tier Application Framework (x64)" | Should -BeTrue $sqlPackagePath = 'C:\Program Files\Microsoft SQL Server\150\DAC\bin\SqlPackage.exe' "${sqlPackagePath}" | Should -Exist } It "SqlLocalDB" -Skip:(Test-IsWin22) { $sqlLocalDBPath = 'C:\Program Files\Microsoft SQL Server\130\Tools\Binn\SqlLocalDB.exe' "${sqlLocalDBPath}" | Should -Exist } } Describe "DotnetTLS" -Skip:(Test-IsWin22) { It "Tls 1.2 is enabled" { [Net.ServicePointManager]::SecurityProtocol -band "Tls12" | Should -Be Tls12 } } Describe "Mercurial" { It "Mercurial" { "hg --version" | Should -ReturnZeroExitCode } } Describe "KubernetesTools" { It "Kind" { "kind version" | Should -ReturnZeroExitCode } It "kubectl" { "kubectl version --client=true --short=true" | Should -ReturnZeroExitCode } It "Helm" { "helm version --short" | Should -ReturnZeroExitCode } It "minikube" { "minikube version --short" | Should -ReturnZeroExitCode } } Describe "Mingw64" { It "" -TestCases @( @{ ToolName = "gcc" } @{ ToolName = "g++" } @{ ToolName = "make" } ) { "$ToolName --version" | Should -ReturnZeroExitCode } } Describe "GoogleCloudSDK" -Skip:(Test-IsWin22) { It "" -TestCases @( @{ ToolName = "bq" } @{ ToolName = "gcloud" } @{ ToolName = "gsutil" } ) { "$ToolName version" | Should -ReturnZeroExitCode } } Describe "NET48" { It "NET48" { $netPath = (Get-DotnetFrameworkTools).Path.Split("<")[0] ${netPath} + "4.8 Tools" | Should -Exist } } Describe "NSIS" -Skip:(Test-IsWin22) { It "NSIS" { "makensis /VERSION" | Should -ReturnZeroExitCode } } Describe "PowerShell Core" { It "pwsh" { "pwsh --version" | Should -ReturnZeroExitCode } It "Execute 2+2 command" { pwsh -Command "2+2" | Should -BeExactly 4 } } Describe "Sbt" -Skip:(Test-IsWin22) { It "sbt" { "sbt --version" | Should -ReturnZeroExitCode } } Describe "ServiceFabricSDK" -Skip:(Test-IsWin22) { It "PowerShell Module" { Get-Module -Name ServiceFabric -ListAvailable | Should -Not -BeNullOrEmpty } } Describe "Stack" { It "Stack" { "stack --version" | Should -ReturnZeroExitCode } } Describe "Vcpkg" { It "vcpkg" { "vcpkg version" | Should -ReturnZeroExitCode } It "env variable VCPKG_INSTALLATION_ROOT is set" { $env:VCPKG_INSTALLATION_ROOT | Should -Not -BeNullOrEmpty } It "VCPKG_INSTALLATION_ROOT directory" { $env:VCPKG_INSTALLATION_ROOT | Should -Exist } } Describe "WebPlatformInstaller" -Skip:(Test-IsWin22) { It "WebPlatformInstaller" { "WebPICMD" | Should -ReturnZeroExitCode } } Describe "Zstd" { It "zstd" { "zstd -V" | Should -ReturnZeroExitCode } } Describe "Pipx" { It "Pipx" { "pipx --version" | Should -ReturnZeroExitCode } }