001package org.conqat.lib.commons.test; 002 003import java.io.IOException; 004 005import org.conqat.lib.commons.system.SystemUtils; 006import org.junit.jupiter.api.extension.ConditionEvaluationResult; 007import org.junit.jupiter.api.extension.ExecutionCondition; 008import org.junit.jupiter.api.extension.ExtensionContext; 009 010/** 011 * Extension class for conditional test execution. Checks whether a .NET runtime 012 * environment is installed (.NET Framework on Windows and Mono on Linux/Mac). 013 */ 014public class AssumeDotNetInstalledCondition implements ExecutionCondition { 015 016 /** Evaluates whether execution is on CI server. */ 017 @Override 018 public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) { 019 if (SystemUtils.isWindows()) { 020 return ConditionEvaluationResult.enabled(".NET Framework is installed on Windows."); 021 } 022 023 try { 024 Runtime.getRuntime().exec("mono --version"); 025 return ConditionEvaluationResult.enabled("Mono is installed."); 026 } catch (IOException e) { 027 return ConditionEvaluationResult.disabled("Mono is not isntalled."); 028 } 029 } 030}