/**
 * TestCase
 * 
 * Embryonic unit test support class.
 * Copyright (c) 2007 Henri Torgemane
 * 
 * See LICENSE.txt for full license information.
 */
package com.hurlant.crypto.tests
{
    public class TestCase 
    {
        public var harness:ITestHarness;
        
        public function TestCase(h:ITestHarness, title:String) {
            harness = h;
            harness.beginTestCase(title);
        }
        
        
        public function assert(msg:String, value:Boolean):void {
            if (value) {
//                TestHarness.print("+ ",msg);
                return;
            }
            throw new Error("Test Failure:"+msg);
        }
        
        public function runTest(f:Function, title:String):void {
            harness.beginTest(title);
            try {
                f();
            } catch (e:Error) {
                trace("EXCEPTION THROWN: "+e);
                trace(e.getStackTrace());
                harness.failTest(e.toString());
                return;
            }
            harness.passTest();
        }
    }
}