>>CLOSE ALL >>CLEAR ALL EXTENDED >>SET CLASSLIB TO (Classlibs) >>SET ESCAPE ON >>SET SAFETY OFF >>SET DEBUGOUT TO Results.txt >> >>UnitTest("TestDemo", "[Parameter]") >> >>SET DEBUGOUT TO >>CLEAR ALL EXTENDED >>CLOSE ALL >>MODIFY COMMAND Results.txt NOWAIT >> >>PROCEDURE UnitTest >> LPARAMETERS tTestSet >> LOCAL s >> TestHarness = CREATEOBJECT("TestHarness") >> IF PEMSTATUS(TestHarness, LEFT(tTestSet, AT("(",tTestSet)-1), 5) >> s = SECONDS() >> TestHarness.&tTestSet >> DEBUGOUT SECONDS() - s >> ELSE >> TestHarness.TestExpr(tTestSet+" Test Not Found", ".F.") >> ENDIF >> DEBUGOUT ' ' >> RELEASE TestHarness >> >>DEFINE CLASS TestHarness AS Custom >>PROCEDURE TestExpr >> LPARAMETERS tMessage, tExpression >> DEBUGOUT IIF(EVALUATE(tExpression), "Pass ", "Failed!"), tMessage+":", "["+tExpression+"]" >>PROCEDURE TestRecord >> LPARAMETERS tAlias, tAllRecords >> LOCAL tSelect, tScanFor, tRecord, tRecNo >> LOCAL ARRAY tRecordArray[1,1] >> tSelect = SELECT(0) >> SELECT (tAlias) >> IF RECCOUNT() <> 0 >> tRecNo = RECNO() >> AFIELDS(tRecordArray, tAlias) >> tScanFor = IIF(tAllRecords, "", "NEXT 1") >> SCAN &tScanFor >> tRecord = '' >> FOR tLoop = 1 TO ALEN(tRecordArray,1) >> tRecord = tRecord + TRANSFORM(EVAL(tRecordArray[tLoop,1]))+" " >> ENDFOR >> This.TestExpr(tRecord, ".T.") >> ENDSCAN >> GOTO tRecNo >> ELSE >> This.TestExpr("No Records Found", ".F.") >> ENDIF >> SELECT (tSelect) >>PROCEDURE TestFunction >> LPARAMETERS tFunction, tTest >> tObject = "This."+LEFT(tFunction, RAT(".",tFunction)-1) >> IF PEMSTATUS(&tObject, SUBSTR(tFunction, RAT(".",tFunction)+1, RAT("(", tFunction)-RAT(".",tFunction)-1), 5) >> tRetVal = This.&tFunction >> tTest = EVL(tTest, ".T.") >> This.TestExpr(tFunction+": "+TRANSFORM(tRetVal), tTest) >> ELSE >> This.TestExpr(tFunction+" Function Not Found", ".F.") >> tRetVal = .f. >> ENDIF >> RETURN tRetVal >> >>PROCEDURE TestDemo >> LPARAMETERS tParameter >> This.AddProperty("oDemo", CREATEOBJECT("Demo") >> This.TestFunction("oDemo.FunctionName()", "Expected Result") >> This.TestExpr("tParameter", "Expected Result") >> This.TestRecord("TableName", lAllRecords) >> This.TestFunction("oDemo.Release()") >>