mas01mj@732: package asunit.textui mas01mj@732: { mas01mj@732: import asunit.framework.AsynchronousTestCase; mas01mj@732: import asunit.framework.Test; mas01mj@732: mas01mj@732: public class TestTime extends Object mas01mj@732: { mas01mj@732: public static function create(test:Test, duration:int):TestTime mas01mj@732: { mas01mj@732: var asyncTest:AsynchronousTestCase = test as AsynchronousTestCase; mas01mj@732: if (asyncTest && asyncTest.remoteDurationIsValid()) mas01mj@732: { mas01mj@732: return new AsyncTestTime(asyncTest, duration, PrivateConstructorEnforcer); mas01mj@732: } mas01mj@732: else mas01mj@732: { mas01mj@732: return new TestTime(test, duration, PrivateConstructorEnforcer); mas01mj@732: } mas01mj@732: } mas01mj@732: mas01mj@732: private var _name:String; mas01mj@732: private var _duration:int; mas01mj@732: public function get duration():int mas01mj@732: { mas01mj@732: return _duration; mas01mj@732: } mas01mj@732: mas01mj@732: public function TestTime(test:Test, duration:int, lock:Class) mas01mj@732: { mas01mj@732: super(); mas01mj@732: if (lock != PrivateConstructorEnforcer) mas01mj@732: { mas01mj@732: throw new Error("TestTime: private constructor"); mas01mj@732: } mas01mj@732: mas01mj@732: _name = test.getName(); mas01mj@732: _duration = duration; mas01mj@732: } mas01mj@732: mas01mj@732: public function toString():String mas01mj@732: { mas01mj@732: return "" + _duration + 'ms : ' + _name; mas01mj@732: } mas01mj@732: mas01mj@732: } mas01mj@732: } mas01mj@732: import asunit.framework.Test; mas01mj@732: import asunit.framework.AsynchronousTestCase; mas01mj@732: import asunit.textui.TestTime; mas01mj@732: mas01mj@732: mas01mj@732: class AsyncTestTime extends TestTime mas01mj@732: { mas01mj@732: private var _remoteDuration:int; mas01mj@732: mas01mj@732: public function AsyncTestTime(test:AsynchronousTestCase, duration:int, lock:Class) mas01mj@732: { mas01mj@732: super(test, duration, lock); mas01mj@732: _remoteDuration = test.remoteDuration; mas01mj@732: } mas01mj@732: mas01mj@732: override public function toString():String mas01mj@732: { mas01mj@732: return super.toString() + ' (remote: ' + _remoteDuration + 'ms)'; mas01mj@732: } mas01mj@732: } mas01mj@732: mas01mj@732: class PrivateConstructorEnforcer {}