Skip to content

Commit 58a1d00

Browse files
committed
Test for dynamic objects
1 parent bd47c2f commit 58a1d00

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

MDX2JSON/Tests.cls.xml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,5 +102,48 @@ Moves widgets datasources into Mobile folder</Description>
102102
Return $$$OK
103103
]]></Implementation>
104104
</Method>
105+
106+
<Method name="DynamicObjects">
107+
<ClassMethod>1</ClassMethod>
108+
<Implementation><![CDATA[
109+
#define IsNewVersion $S($System.Version.GetMajor()>2015:"1",$System.Version.GetMajor()=2015:$S($System.Version.GetMinor()>=3:"1",1:"0"),1:"0")
110+
#define NewDynObj ##Expression($S($$$IsNewVersion=1:"##class(%Object).%New()",1:"##class(%ZEN.proxyObject).%New()"))
111+
#define NewDynObjList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfObjects).%New()"))
112+
#define NewDynDTList ##Expression($S($$$IsNewVersion=1:"##class(%Array).%New()",1:"##class(%ListOfDataTypes).%New()"))
113+
//#define Insert(%element) ##Expression($S($$$IsNewVersion=1:%element,1:b))
114+
#define InsertWrap(%obj,%element) ##Expression(S($$$IsNewVersion=1:$$$InsertOther(%obj,%element),1:$$$InsertOther(%obj,%element)))
115+
#define isq(%element) ##Expression($S($d(%element)=1:1,1:0))
116+
#define InsertOther(%obj,%element) $S($$$IsNewVersion=1:"do %obj.$push(%element)",1:"do %obj.Insert(%element)")
117+
//#define CallClass(%element) ##Expression(##class(MDX2JSON.Tests).A(%element))
118+
#define q(%element) $S($d(%element)="""":"""",1:"")
119+
#define Insert(%obj,%element) ##Expression($S($$$IsNewVersion=1:"do %obj.$push(%element)",1:"do %obj.Insert(%element)"))
120+
121+
//$$$InsertNew(%element),1:$$$InsertOld(%element)))
122+
#define InsertNew(%element) $push(%element)
123+
#define InsertOld(%element) Insert(%element)
124+
#define DynObjToJSON(%obj) ##Expression($S($$$IsNewVersion=1:"do %obj.$toJSON()",1:"do %obj.%ToJSON()"))
125+
126+
set obj = $$$NewDynObj
127+
set obj.prop = "val"
128+
$$$DynObjToJSON(obj)
129+
130+
set dtList = $$$NewDynDTList
131+
//do objList.$push("a")
132+
//do objList.Insert("a")
133+
//do objList.$$$Insert("a")
134+
$$$Insert(dtList,a)
135+
//w $$$CallClass("a")
136+
//w $$$isq("a")
137+
]]></Implementation>
138+
</Method>
139+
140+
<Method name="A">
141+
<ClassMethod>1</ClassMethod>
142+
<FormalSpec>a</FormalSpec>
143+
<Implementation><![CDATA[
144+
set ^test($h)=a
145+
return "ololo"
146+
]]></Implementation>
147+
</Method>
105148
</Class>
106149
</Export>

0 commit comments

Comments
 (0)