/* * Created on 15/10/2006 * * Copyright 2005-2010 Ignis Software Tools Ltd. All rights reserved. */ package jsystem.framework.scenario; import jsystem.framework.report.ExtendTestListener; import jsystem.framework.report.TestInfo; import jsystem.framework.report.TestStatusListener; import jsystem.framework.scenario.flow_control.AntForLoop; import junit.framework.AssertionFailedError; import junit.framework.Test; import junit.framework.TestListener; /** * the previous class has been separate to two classe's because the previous * code didn't manage the STAT_WARNING situation. */ public class StatusManager{ public static RegularStatusListener regularStatusListener; public static ExtendedStatusListener extendedTestListener; /** * Locate a given test RunnerTest object and set it's status * * @param test the test to match * @param status the status to set (STAT_SUCCESS/STAT_FAIL/STAT_WARNING...) */ private void setTestStatus(Test test, int status){ RunnerTest runnerTest = ScenarioHelpers.getRunnerTest(test); if (runnerTest != null){ runnerTest.setStatus(status); } } /** * the previous method. */ public static RegularStatusListener getRegularStatusListener(){ if (regularStatusListener == null){ StatusManager status = new StatusManager(); regularStatusListener = status.new RegularStatusListener(); } return regularStatusListener; } /** * the method that handle the STAT_WARNING situation. */ public static ExtendedStatusListener getExtendedStatusListener(){ if (extendedTestListener == null){ StatusManager status = new StatusManager(); extendedTestListener = status.new ExtendedStatusListener(); } return extendedTestListener; } public class RegularStatusListener implements TestListener, TestStatusListener{ public void addError(Test test, Throwable t) { setTestStatus(test, RunnerTest.STAT_ERROR); } public void addFailure(Test test, AssertionFailedError t) { setTestStatus(test, RunnerTest.STAT_FAIL); } public void endTest(Test test) { if (test == null) { return; } RunnerTest runnerTest= ScenarioHelpers.getRunnerTest(test); if (runnerTest.statusShouldBePass()) { runnerTest.setStatus(RunnerTest.STAT_SUCCESS); } } public void startTest(Test test) { setTestStatus(test, RunnerTest.STAT_RUNNING); } } public class ExtendedStatusListener implements ExtendTestListener, TestStatusListener{ public void addWarning(Test test) { setTestStatus(test, RunnerTest.STAT_WARNING); } public void endRun() { // TODO Auto-generated method stub } public void startTest(TestInfo testInfo) { // TODO Auto-generated method stub } public void addError(Test arg0, Throwable arg1) { // TODO Auto-generated method stub } public void addFailure(Test arg0, AssertionFailedError arg1) { // TODO Auto-generated method stub } public void endTest(Test arg0) { // TODO Auto-generated method stub } public void startTest(Test arg0) { // TODO Auto-generated method stub } @Override public void endContainer(JTestContainer container) { // TODO Auto-generated method stub } @Override public void endLoop(AntForLoop loop, int count) { // TODO Auto-generated method stub } @Override public void startContainer(JTestContainer container) { // TODO Auto-generated method stub } @Override public void startLoop(AntForLoop loop, int count) { // TODO Auto-generated method stub } } }