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

com.paypal.selion.internal.platform.grid.SessionSharingMethodInterceptor Maven / Gradle / Ivy

package com.paypal.selion.internal.platform.grid;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.testng.IMethodInstance;
import org.testng.IMethodInterceptor;
import org.testng.ITestContext;

import com.paypal.selion.annotations.MobileTest;
import com.paypal.selion.annotations.WebTest;

/**
 * SessionSharingMethodInterceptor controls order of execution of tests that share the same selenium session.
 * 
 */
public class SessionSharingMethodInterceptor implements IMethodInterceptor {

    @Override
    public List intercept(List methods, ITestContext context) {

        List result = new ArrayList();
        Map> sharingResult = new HashMap>();

        for (IMethodInstance temp : methods) {

            if (temp.getInstance().getClass().getAnnotation(WebTest.class) == null
                    && temp.getInstance().getClass().getAnnotation(MobileTest.class) == null) {
                result.add(temp);
            } else {

                if (sharingResult.containsKey(temp.getInstance())) {
                    sharingResult.get(temp.getInstance()).add(temp);
                } else {
                    List temp1 = new ArrayList();
                    temp1.add(temp);
                    sharingResult.put(temp.getInstance(), temp1);
                }
            }
        }

        for (List temp : sharingResult.values()) {
            result.addAll(temp);
        }

        return result;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy