1509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustpackage test.methodinterceptors; 2509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust 3509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport org.testng.IMethodInstance; 4509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport org.testng.IMethodInterceptor; 5509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport org.testng.ITestContext; 6509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport org.testng.annotations.Test; 7509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust 8509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport java.util.ArrayList; 9509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport java.util.HashSet; 10509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport java.util.List; 11509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustimport java.util.Set; 12509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust 13509aca53357e59e6f06a14261dd4452bec315a98Cédric Beustpublic class FastTestsFirstInterceptor implements IMethodInterceptor { 14892b08c1f1afd198fd8ccbf804de28b7ce12f547nullin @Override 15509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust public List<IMethodInstance> intercept(List<IMethodInstance> methods, 16509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust ITestContext context) 17509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust { 1810c223b7aa6bf34778079bb5ee1a494c83cd1239Ryan Schmitt List<IMethodInstance> result = new ArrayList<>(); 19509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust for (IMethodInstance m : methods) { 20509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust Test test = m.getMethod().getMethod().getAnnotation(Test.class); 2110c223b7aa6bf34778079bb5ee1a494c83cd1239Ryan Schmitt Set<String> groups = new HashSet<>(); 22509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust for (String group : test.groups()) { 23509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust groups.add(group); 24509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust } 25509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust if (groups.contains("fast")) { 26509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust result.add(0, m); 27509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust } 28509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust else { 29509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust result.add(m); 30509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust } 31509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust } 32509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust return result; 33509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust } 34509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust 35509aca53357e59e6f06a14261dd4452bec315a98Cédric Beust} 36