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

ru.testit.services.Utils Maven / Gradle / Ivy

package ru.testit.services;

import ru.testit.annotations.*;
import ru.testit.models.Label;
import ru.testit.models.LinkItem;

import java.lang.reflect.Method;
import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import static java.util.Objects.isNull;

public class Utils {
    public static String extractExternalID(final Method atomicTest, Map parameters) {
        final ExternalId annotation = atomicTest.getAnnotation(ExternalId.class);
        return (annotation != null) ? setParameters(annotation.value(), parameters) : getHash(atomicTest.getDeclaringClass().getName() + atomicTest.getName());
    }

    public static String extractDisplayName(final Method atomicTest, Map parameters) {
        final DisplayName annotation = atomicTest.getAnnotation(DisplayName.class);
        return (annotation != null) ? setParameters(annotation.value(), parameters) : atomicTest.getName();
    }

    public static List extractWorkItemId(final Method atomicTest, Map parameters) {
        final List workItemIds = new ArrayList<>();
        final WorkItemId workItem = atomicTest.getAnnotation(WorkItemId.class);
        if (workItem != null) {
            workItemIds.add(setParameters(workItem.value(), parameters));
            return workItemIds;
        }

        final WorkItemIds workItems = atomicTest.getAnnotation(WorkItemIds.class);
        if (workItems != null) {
            for (final String workItemId : workItems.value()) {
                workItemIds.add(setParameters(workItemId, parameters));
            }
        }

        return workItemIds;
    }

    public static List extractLinks(final Method atomicTest, Map parameters) {
        final List links = new LinkedList<>();
        final Links linksAnnotation = atomicTest.getAnnotation(Links.class);
        if (linksAnnotation != null) {
            for (final Link link : linksAnnotation.links()) {
                links.add(makeLink(link, parameters));
            }
        } else {
            final Link linkAnnotation = atomicTest.getAnnotation(Link.class);
            if (linkAnnotation != null) {
                links.add(makeLink(linkAnnotation, parameters));
            }
        }
        return links;
    }

    public static List




© 2015 - 2025 Weber Informatics LLC | Privacy Policy