public void on(@Observes ExecutionDecisionEvent event, JiraGovernorClient jiraGovernorClient) { ExecutionDecision executionDecision = this.executionDecision.get(); if (executionDecision == null || executionDecision.getDecision() == Decision.DONT_EXECUTE) { return; } if (event.getAnnotation().annotationType() == provides()) { Jira jiraIssue = (Jira) event.getAnnotation(); this.executionDecision.set(jiraGovernorClient.resolve(jiraIssue)); } }
public void on( @Observes AfterTestLifecycleEvent event, TestResult testResult, GovernorRegistry governorRegistry, JiraGovernorConfiguration jiraGovernorConfiguration, JiraGovernorClient jiraGovernorClient) { int count = 0; try { Integer c = lifecycleCountRegister.get(event.getTestMethod()); count = (c != null ? c.intValue() : 0); if (count == 0) { // skip first event - see // https://github.com/arquillian/arquillian-governor/pull/16#issuecomment-166590210 return; } final ExecutionDecision decision = TestMethodExecutionRegister.resolve(event.getTestMethod(), provides()); // if we passed some test method annotated with Jira, we may eventually close it if (jiraGovernorConfiguration.getClosePassed()) { // we decided we run this test method even it has annotation on it if (testResult.getStatus() == Status.PASSED && decision.getDecision() == Decision.EXECUTE && (JiraGovernorStrategy.FORCING_EXECUTION_REASON_STRING) .equals(decision.getReason())) { for (Map.Entry<Method, List<Annotation>> entry : governorRegistry.get().entrySet()) { if (entry.getKey().toString().equals(event.getTestMethod().toString())) { for (Annotation annotation : entry.getValue()) { if (annotation.annotationType() == provides()) { String id = ((Jira) annotation).value(); jiraGovernorClient.close(id); return; } } } } } } } finally { lifecycleCountRegister.put(event.getTestMethod(), ++count); } }