Files
runner-images/images/macos/tests/Java.Tests.ps1
T

88 lines
3.2 KiB
PowerShell
Raw Normal View History

2020-09-10 14:34:08 +03:00
Import-Module "$PSScriptRoot/../helpers/Common.Helpers.psm1"
Import-Module "$PSScriptRoot/../helpers/Tests.Helpers.psm1" -DisableNameChecking
2020-09-10 14:34:08 +03:00
function Get-NativeVersionFormat {
param($Version)
2021-02-07 20:09:22 +03:00
if ($Version -in "8") {
2020-09-10 14:34:08 +03:00
return "1.${Version}"
}
return $Version
}
Describe "Java" {
2020-09-10 14:34:08 +03:00
BeforeAll {
function Validate-JavaVersion {
param($JavaCommand, $ExpectedVersion)
$commandResult = Get-CommandResult $JavaCommand
$commandResult.ExitCode | Should -Be 0
$matchResult = $commandResult.Output | Select-String '^openjdk version \"([\d\._]+)\"'
$matchResult.Matches.Success | Should -BeTrue
$version = $matchResult.Matches.Groups[1].Value
$version | Should -BeLike "${ExpectedVersion}*"
}
}
$toolsetJava = Get-ToolsetValue "java"
$defaultVersion = $toolsetJava.default
$defaultVendor = $toolsetJava.default_vendor
$javaVendors = $toolsetJava.vendors
2020-09-10 14:34:08 +03:00
[array]$jdkVersions = ($javaVendors | Where-Object {$_.name -eq $defaultVendor}).versions
[array]$adoptJdkVersions = ($javaVendors | Where-Object {$_.name -eq "Adopt"}).versions
$adoptCases = $adoptJdkVersions | ForEach-Object { @{Version = $_} }
$testCases = $jdkVersions | ForEach-Object { @{ Title = $_; Version = (Get-NativeVersionFormat $_); EnvVariable = "JAVA_HOME_${_}_X64" } }
$testCases += @{ Title = "Default"; Version = (Get-NativeVersionFormat $defaultVersion); EnvVariable = "JAVA_HOME" }
2020-09-10 14:34:08 +03:00
$testCases | ForEach-Object {
Context $_.Title {
It "Version is found by 'java_home'" -TestCases $_ {
"/usr/libexec/java_home -v${Version}" | Should -ReturnZeroExitCode
}
It "Java <Version>" -TestCases $_ {
2020-09-10 14:34:08 +03:00
$envVariablePath = Get-EnvironmentVariable $EnvVariable
2020-11-02 15:47:58 +03:00
$javaBinPath = Join-Path $envVariablePath "/bin/java"
Validate-JavaVersion -JavaCommand "$javaBinPath -version" -ExpectedVersion $Version
2020-09-10 14:34:08 +03:00
}
if ($_.Title -eq "Default") {
It "Version is default" -TestCases $_ {
Validate-JavaVersion -JavaCommand "java -version" -ExpectedVersion $Version
}
}
}
}
2021-01-11 13:30:51 +07:00
Context "Java Adopt" {
Describe "Java Adopt" {
It "Java Adopt <Version>" -TestCases $adoptCases {
$adoptPath = Join-Path (Get-ChildItem ${env:AGENT_TOOLSDIRECTORY}\Java_Adopt_jdk\${Version}*) "x64\Contents\Home\bin\java"
$result = Get-CommandResult "`"$adoptPath`" -version"
$result.ExitCode | Should -Be 0
}
}
}
2021-01-11 13:30:51 +07:00
Context "Maven" {
Describe "Maven" {
It "Maven" {
"mvn --version" | Should -ReturnZeroExitCode
}
}
}
Context "Gradle" {
Describe "Gradle" {
It "Gradle is installed" {
"gradle --version" | Should -ReturnZeroExitCode
}
It "Gradle is installed to /usr/local/bin" {
(Get-Command "gradle").Path | Should -BeExactly "/usr/local/bin/gradle"
}
}
}
2020-09-10 14:34:08 +03:00
}