All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.test.scenarios.annotations.DisabledOnQuarkusSnapshotCondition Maven / Gradle / Ivy

package io.quarkus.test.scenarios.annotations;

import java.lang.reflect.AnnotatedElement;
import java.util.Optional;

import org.junit.jupiter.api.extension.ConditionEvaluationResult;
import org.junit.jupiter.api.extension.ExecutionCondition;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.platform.commons.util.AnnotationUtils;

import io.quarkus.test.services.quarkus.model.QuarkusProperties;

public class DisabledOnQuarkusSnapshotCondition implements ExecutionCondition {
    private static final String QUARKUS_SNAPSHOT_VERSION = "999-SNAPSHOT";
    private static final ConditionEvaluationResult ENABLED_BY_DEFAULT = ConditionEvaluationResult.enabled(
            "@DisabledOnQuarkusSnapshot is not present");

    @Override
    public ConditionEvaluationResult evaluateExecutionCondition(ExtensionContext context) {
        Optional element = context.getElement();
        return AnnotationUtils.findAnnotation(element, DisabledOnQuarkusSnapshot.class)
                .stream()
                .filter(annotation -> DisabledOnQuarkusSnapshotCondition.isQuarkusSnapshotVersion())
                .findAny()
                .map(this::testIsDisabled)
                .orElse(ENABLED_BY_DEFAULT);
    }

    private ConditionEvaluationResult testIsDisabled(DisabledOnQuarkusSnapshot disabledOnQuarkus) {
        return ConditionEvaluationResult.disabled("Disabled on Quarkus snapshot (reason: " + disabledOnQuarkus.reason() + ")");
    }

    public static boolean isQuarkusSnapshotVersion() {
        return QuarkusProperties.getVersion().contains(QUARKUS_SNAPSHOT_VERSION); // to cover cases like 3.2.999-SNAPSHOT
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy