Adopted from InterSystems's %UnitTest.TestCase by logist (Dimas ltd., Russia) Adapted to Van Hoecke's needs by JCL and FMA Test case class. All test cases are derived from here. Every test method should start with prefix "Test". %outUnitTest,Tools.UnitTest,vhLib.Macro %outUnitTest,Tools.UnitTest 1 %RegisteredObject %Boolean Tools.Test.Manager Tools.Test.VerwachteExceptie %ArrayOfDataTypes %TimeStamp Indien true wordt de gehele testcase niet uitgevoerd %Boolean 0 Delimited lijst van Methods die niet moeten uitgevoerd worden Eerste karakter bepaald delimiter %String %String %String 4682||1000 %String 1 AManager:Tools.Test.Manager %Status aTestName:%String aTestName:%String %Boolean Tools.Test.VerwachteExceptie Exceptie:Tools.Test.VerwachteExceptie 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Var:%String %Boolean aAutoQuoted:%String,aValue1:%String,aValue2:%String,aMessage:%String %Boolean aAutoQuoted:%String,aValue1:%String,aValue2:%String,aMessage:%String %Boolean aAutoQuoted:%String,aValue1:%String,aValue2:%String,aMessage:%String %Boolean aAutoQuoted:%String,aValue1:%String,aValue2:%String,aDifference:%String,aMessage:%String %Boolean (aDifference) Do manager.LogAssert(success,"AssertAlmostEquals",aMessage) Quit success ]]> aAutoQuoted:%String,List1:%ListOfDataTypes,List2:%ListOfDataTypes,aMessage:%String %Status *"_Value2_"*" } } Set manager=r%Manager if List1.Count() '= List2.Count() { set aMessage = aMessage _ "# Items differs "_List1.Count()_"="_List2.Count() } Do manager.LogAssert(success,"AssertEqualsList",aMessage) Quit success ]]> aAutoQuoted:%String,Method:%String,ExceptionClass:%String,ExceptionMessage:%String="",aMessage:%String %Boolean aAutoQuoted:%String,aValue:%String,aMessage:%String %Boolean aAutoQuoted:%String,aValue:%String,aMessage:%String %Boolean aAutoQuoted:%String,status:%String,aMessage:%String %Status "_$g(errorarray(1)) Do manager.LogAssert(success,"AssertStatusOK",aMessage) Quit success ]]> aAutoQuoted:%String,Folder:%String,aMessage:%String="" %Status aAutoQuoted:%String,Object:%RegisteredObject,VerwachtObject:%RegisteredObject,aMessage:%String="" "_ $method(WaardePropertyVerwachtObject,"Count") ) } else { set itList1 = ##class(TECH.ListIterator).%New(WaardePropertyObject) set itList2 = ##class(TECH.ListIterator).%New(WaardePropertyVerwachtObject) while itList1.HasNext() && success { #dim Value1 As %String = itList1.Next() #dim Value2 As %String = itList2.Next() set success = ( Value1 = Value2) if 'success do Verschillen.Insert("Item "_itList1.Key()_" verschillend : *"_Value1 _ "* <> *"_Value2_"*") } } } elseif WaardePropertyObject '= WaardePropertyVerwachtObject { do Verschillen.Insert(Property_" : "_WaardePropertyObject _" <> "_ WaardePropertyVerwachtObject ) } } if Verschillen.Count() { set aMessage = aMessage _ ##class(TECH.ListUtils).ListToPieces(Verschillen,$$$CRLF) set success = 0 } Do manager.LogAssert(success,"AssertObject",aMessage) Quit success ]]> Path:%String 1 %Boolean 0) ) quit Result ]]> Path:%String 1 0) set itFiles = ##class(TECH.ListIterator).%New(FileList) while ( itFiles.HasNext() ) && ( RecentAangepast ) { #dim File As TECH.FileInfo = itFiles.Next() if ..ControleBestandNodigOpRecenteAanpassing(File) { set RecentAangepast = '##class(TECH.Comparator.TimeStampComparator).%New().IsKleinerDan(File.DateModified,..StartTime) } } quit RecentAangepast ]]> FileInfo:TECH.FileInfo 1 %Boolean aAutoQuoted:%String,status:%String,aMessage:%String %Status aMessage:%String %Status aAutoQuoted:%String,file1:%String,file2:%String,aMessage:%String %Boolean message:%String [Previously private] 1 argline:%String,type:%String %String $l(argline) s c=$e(argline,i) d . i c="""" s q='q . i c="(" s p=p+1 . i c=")" s p=p-1 . i c=",",q=0,p=0 s args($increment(piece))=$e(argline,ptr,i-1),ptr=i+1 s args($increment(piece))=$e(argline,ptr,i-1) i type="expr" q $g(args(1)) i type="equals" q $g(args(1))_"=="_$g(args(2)) q "" ]]> EventType:%String