blob: 0992fbbce78109356187baef036bc4c7a127520d [file] [log] [blame]
////////////////////////////////////////////////////////////////////////////////
//
// Licensed to the Apache Software Foundation (ASF) under one or more
// contributor license agreements. See the NOTICE file distributed with
// this work for additional information regarding copyright ownership.
// The ASF licenses this file to You under the Apache License, Version 2.0
// (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
package {
import flash.display.DisplayObject;
import flash.utils.*;
/**
* The class that collects TestResults for a TestCase
*/
public class TestResult
{
public static const PASS:int = 0;
public static const FAIL:int = 1;
public static const ERROR:int = 2;
public static const SETUP:int=0;
public static const BODY:int=1;
public static const CLEANUP:int=2;
/**
* testID
*/
public var testID:String;
/**
* begin time
*/
public var beginTime:Number;
/**
* end time
*/
public var endTime:Number;
/**
* hang on to the context, ie, the script
*/
public var context:UnitTester;
/**
* result
*/
public var result:int = -1; // "pass", "fail", "error"
/**
* message. Failures often have messages
*/
public var message:String = "";
/**
* extraInfo: failures may have a file associated
*/
public var extraInfo:String = "";
/**
* Name of the Script associated with this result
*/
public var scriptName:String = "";
/**
* phase. how far the test finished. setup, body, cleanup
*/
public var phase:int = -1;
/**
* get printable version of phase
*/
public static function getPhaseString(val:int):String {
if (val == CLEANUP) {
return "cleanup";
}else if (val == BODY) {
return "body";
}else if (val == SETUP) {
return "setup";
}
return "no phase set";
}
/**
* get printable version of result
*/
public static function getResultString(val:int):String {
if (val == PASS) {
return "pass";
}else if (val == FAIL) {
return "fail";
}else if (val == ERROR) {
return "error";
}
return null;
}
/**
* default output look
*/
public function toString():String
{
var className:String = getQualifiedClassName (context);
return "RESULT: scriptName="+context.testDir + className+" id="+ testID + " result=" + getResultString(result) + " elapsed=" + (endTime-beginTime) + " phase=" + getPhaseString(phase) + " started=" + beginTime + " extraInfo=" + extraInfo + " msg=" + message ;
}
public function hasStatus():Boolean {
return (result != -1);
}
public function doFail (msg:String, extraInfo:String=null):void {
// first failure is the one we keep
if (UnitTester.noFail)
{
return;
}
if (this.result != FAIL)
{
this.result = FAIL;
// this.message = msg;
if (UnitTester.run_id == "-1")
{
var tmp:String = UnitTester.lastStep.toString().substr(0,UnitTester.lastStep.toString().indexOf (":")) + "(" +getPhaseString(phase) + ":step " + (UnitTester.lastStepLine+1) + ") ";
this.message = tmp + " " + msg;
}
else
{
this.message = msg;
}
this.extraInfo = extraInfo;
}
}
}
}