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

taf.api.rest.APIObject Maven / Gradle / Ivy

The newest version!
package taf.api.rest;

import datainstiller.data.DataAliases;
import datainstiller.data.DataPersistence;
import org.apache.commons.jexl3.JexlContext;
import ru.yandex.qatools.allure.Allure;
import ru.yandex.qatools.allure.events.MakeAttachmentEvent;
import ru.yandex.qatools.allure.events.TestCaseEvent;
import ru.yandex.qatools.allure.model.Description;
import ru.yandex.qatools.allure.model.DescriptionType;
import ru.yandex.qatools.allure.model.Label;
import ru.yandex.qatools.allure.model.LabelName;
import ui.auto.core.context.PageComponentContext;
import ui.auto.core.support.EnvironmentsSetup;
import ui.auto.core.support.TestContext;
import ui.auto.core.support.UserProvider;
import ui.auto.core.testng.TestNGBase;

import java.io.InputStream;
import java.net.URL;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class APIObject extends DataPersistence {

    private void addToGlobalAliases(DataPersistence data) {
        DataAliases global = PageComponentContext.getGlobalAliases();
        DataAliases local = data.getDataAliases();
        if (local != null) {
            global.putAll(local);
        }
    }

    private void resolveGlobalAliases() {
        DataAliases global = PageComponentContext.getGlobalAliases();
        for (String aliasKey : global.keySet()) {
            String aliasValue = global.getAsString(aliasKey);
            if (aliasValue != null && aliasValue.matches(".*\\$\\{[\\w-]+}.*")) {
                Pattern pat = Pattern.compile("\\$\\{[\\w-]+}");
                Matcher mat = pat.matcher(aliasValue);
                while (mat.find()) {
                    String alias = mat.group();
                    String key = alias.replace("${", "").replace("}", "");
                    if (global.containsKey(key)) {
                        String value = global.getAsString(key);
                        if (value != null) {
                            aliasValue = aliasValue.replace(alias, value);
                        }
                    }
                }
                global.put(aliasKey, aliasValue);
            }
        }
    }

    @Override
    protected void initJexlContext(JexlContext jexlContext) {
        LocalDateTime now = LocalDateTime.now();
        jexlContext.set("year_month_day", DateTimeFormatter.ofPattern("yyyy-M-d").format(now));
        jexlContext.set("day_month_year", DateTimeFormatter.ofPattern("d-M-yyyy").format(now));
        jexlContext.set("month_day_year", DateTimeFormatter.ofPattern("M-d-yyyy").format(now));
        jexlContext.set("time_stamp", DateTimeFormatter.ofPattern("yyyyMMddkkmmss-S").format(now));
        String timeStampThreadId = DateTimeFormatter.ofPattern("yyMMddkkmmss").format(now) + Thread.currentThread().getId();
        jexlContext.set("time_stamp_thread", timeStampThreadId);

        EnvironmentsSetup.Environment env = TestContext.getTestProperties().getTestEnvironment();
        if (env != null) {
            jexlContext.set("env", env);
            jexlContext.set("userProvider", UserProvider.getInstance());
        }
    }

    private List




© 2015 - 2025 Weber Informatics LLC | Privacy Policy