17ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrpackage test.hook;
27ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
37ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport org.testng.*;
47ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport org.testng.annotations.DataProvider;
57ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport org.testng.annotations.Test;
67ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
77ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport javax.inject.Named;
87ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport java.lang.annotation.Annotation;
97ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrimport java.lang.reflect.Method;
107ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
117ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herrpublic class HookSuccess862Test implements IHookable {
127ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
137ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    @Override
147ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    public void run(IHookCallBack callBack, ITestResult testResult) {
157ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        Method method = testResult.getMethod().getConstructorOrMethod().getMethod();
167ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        for (int i = 0; i < callBack.getParameters().length; i++) {
177ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr            Annotation[] annotations = method.getParameterAnnotations()[i];
187ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr            for (Annotation annotation : annotations) {
197ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr                if (annotation instanceof Named) {
207ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr                    Named named = (Named) annotation;
217ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr                    callBack.getParameters()[0] = callBack.getParameters()[0] + named.value();
227ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr                }
237ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr            }
247ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        }
257ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        callBack.runTestMethod(testResult);
267ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    }
277ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
287ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    @DataProvider
297ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    public Object[][] dp() {
307ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        return new Object[][]{
317ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr                new Object[]{"foo", "test"}
327ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        };
337ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    }
347ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr
357ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    @Test(dataProvider = "dp")
367ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    public void verify(@Named("bar") String bar, String test) {
377ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        Assert.assertEquals(bar, "foobar");
387ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr        Assert.assertEquals(test, "test");
397ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr    }
407ddaf4ad00a94ae1dcc501cfdd75a92da6d22da9Julien Herr}
41