package ru.stqa.trainings.testng.tricky4.sample38; import java.lang.reflect.Constructor; import java.lang.reflect.Method; import java.math.BigInteger; import java.net.URL; import org.testng.IAnnotationTransformer; import org.testng.annotations.ITestAnnotation; import biz.futureware.mantis.rpc.soap.client.IssueData; import biz.futureware.mantis.rpc.soap.client.MantisConnectLocator; import biz.futureware.mantis.rpc.soap.client.MantisConnectPortType; public class AssumeBugIsFixed implements IAnnotationTransformer { @Override public void transform(ITestAnnotation annotation, Class testClass, Constructor testConstructor, Method testMethod) { Bug bugAnnotation = testMethod.getAnnotation(Bug.class); if (bugAnnotation != null) { try { MantisConnectLocator mcl = new MantisConnectLocator(); MantisConnectPortType mcp = mcl.getMantisConnectPort( new URL("http://localhost/mantisbt-1.2.17/api/soap/mantisconnect.php")); IssueData issue = mcp.mc_issue_get("administrator", "root", BigInteger.valueOf(bugAnnotation.value())); String status = issue.getStatus().getName(); if (! ("closed".equals(status) || "resolved".equals(status))) { annotation.setEnabled(false); } } catch (Exception e) { e.printStackTrace(); } } } }