Trapped-Tests.js 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. define("gh_herby_trapped/Trapped-Tests", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber_core/SUnit"], function(smalltalk,nil,_st){
  2. smalltalk.addPackage('Trapped-Tests');
  3. smalltalk.packages["Trapped-Tests"].transport = {"type":"amd","amdNamespace":"gh_herby_trapped"};
  4. smalltalk.addClass('IsolatorTest', smalltalk.TestCase, ['rootModel'], 'Trapped-Tests');
  5. smalltalk.addMethod(
  6. smalltalk.method({
  7. selector: "setUp",
  8. category: 'running',
  9. fn: function (){
  10. var self=this;
  11. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  12. return smalltalk.withContext(function($ctx1) {
  13. var $1,$2;
  14. $1=_st($EavModel())._new();
  15. _st($1)._getBlock_((function(x){
  16. return smalltalk.withContext(function($ctx2) {
  17. return _st(x)._root();
  18. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1,1)})}));
  19. $2=_st($1)._putBlock_((function(x,y){
  20. return smalltalk.withContext(function($ctx2) {
  21. return _st(x)._root_(y);
  22. }, function($ctx2) {$ctx2.fillBlock({x:x,y:y},$ctx1,2)})}));
  23. self["@rootModel"]=$2;
  24. return self}, function($ctx1) {$ctx1.fill(self,"setUp",{},smalltalk.IsolatorTest)})},
  25. args: [],
  26. source: "setUp\x0a\x0arootModel := EavModel new\x0a\x09getBlock: [:x | x root];\x0a putBlock: [:x :y | x root: y].",
  27. messageSends: ["getBlock:", "new", "root", "putBlock:", "root:"],
  28. referencedClasses: ["EavModel"]
  29. }),
  30. smalltalk.IsolatorTest);
  31. smalltalk.addMethod(
  32. smalltalk.method({
  33. selector: "testNontrivialModelGetsAppropriateValueForModification",
  34. category: 'tests',
  35. fn: function (){
  36. var self=this;
  37. var isolator,model,result;
  38. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  39. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  40. return smalltalk.withContext(function($ctx1) {
  41. var $2,$1,$3,$5,$4,$6;
  42. result=nil;
  43. $2="foo".__minus_gt(["bar", [(1), [(2), (5)]], "baz"]);
  44. $ctx1.sendIdx["->"]=1;
  45. $1=smalltalk.HashedCollection._from_([$2,"moo".__minus_gt("zoo")]);
  46. isolator=_st($Isolator())._on_($1);
  47. $3=_st($EavModel())._new();
  48. _st($3)._getBlock_((function(x){
  49. return smalltalk.withContext(function($ctx2) {
  50. $5=_st(x)._root();
  51. $ctx2.sendIdx["root"]=1;
  52. $4=_st($5)._at_("foo");
  53. $ctx2.sendIdx["at:"]=2;
  54. return _st($4)._at_((2));
  55. $ctx2.sendIdx["at:"]=1;
  56. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1,1)})}));
  57. $6=_st($3)._putBlock_((function(x,y){
  58. return smalltalk.withContext(function($ctx2) {
  59. return _st(_st(_st(x)._root())._at_("foo"))._at_put_((2),y);
  60. }, function($ctx2) {$ctx2.fillBlock({x:x,y:y},$ctx1,2)})}));
  61. model=$6;
  62. _st(isolator)._model_modify_(model,(function(r){
  63. return smalltalk.withContext(function($ctx2) {
  64. result=r;
  65. return result;
  66. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,3)})}));
  67. self._assert_equals_([(1), [(2), (5)]],result);
  68. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelGetsAppropriateValueForModification",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  69. args: [],
  70. source: "testNontrivialModelGetsAppropriateValueForModification\x0a| isolator model result |\x0aresult := nil.\x0aisolator := Isolator on: #{ 'foo' -> #('bar' #(1 #(2 5)) 'baz'). 'moo' -> 'zoo' }.\x0amodel := EavModel new\x0a\x09getBlock: [ :x | (x root at: 'foo') at: 2 ];\x0a\x09putBlock: [ :x :y | (x root at: 'foo') at: 2 put: y].\x0aisolator model: model modify: [:r|result := r].\x0aself assert: #(1 #(2 5)) equals: result",
  71. messageSends: ["on:", "->", "getBlock:", "new", "at:", "root", "putBlock:", "at:put:", "model:modify:", "assert:equals:"],
  72. referencedClasses: ["Isolator", "EavModel"]
  73. }),
  74. smalltalk.IsolatorTest);
  75. smalltalk.addMethod(
  76. smalltalk.method({
  77. selector: "testNontrivialModelModifiesAppropriateValue",
  78. category: 'tests',
  79. fn: function (){
  80. var self=this;
  81. var isolator,model,result;
  82. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  83. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  84. return smalltalk.withContext(function($ctx1) {
  85. var $2,$3,$1,$4,$6,$5,$7,$9,$8;
  86. result=nil;
  87. $2="foo".__minus_gt(["bar", [(1), [(2), (3)]], "baz"]);
  88. $ctx1.sendIdx["->"]=1;
  89. $3="moo".__minus_gt("zoo");
  90. $ctx1.sendIdx["->"]=2;
  91. $1=smalltalk.HashedCollection._from_([$2,$3]);
  92. isolator=_st($Isolator())._on_($1);
  93. $4=_st($EavModel())._new();
  94. _st($4)._getBlock_((function(x){
  95. return smalltalk.withContext(function($ctx2) {
  96. $6=_st(x)._root();
  97. $ctx2.sendIdx["root"]=1;
  98. $5=_st($6)._at_("foo");
  99. $ctx2.sendIdx["at:"]=2;
  100. return _st($5)._at_((2));
  101. $ctx2.sendIdx["at:"]=1;
  102. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1,1)})}));
  103. $7=_st($4)._putBlock_((function(x,y){
  104. return smalltalk.withContext(function($ctx2) {
  105. return _st(_st(_st(x)._root())._at_("foo"))._at_put_((2),y);
  106. }, function($ctx2) {$ctx2.fillBlock({x:x,y:y},$ctx1,2)})}));
  107. model=$7;
  108. _st(isolator)._model_modify_(model,(function(r){
  109. return smalltalk.withContext(function($ctx2) {
  110. return "new";
  111. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,3)})}));
  112. _st(isolator)._model_read_(model,(function(r){
  113. return smalltalk.withContext(function($ctx2) {
  114. result=r;
  115. return result;
  116. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,4)})}));
  117. $ctx1.sendIdx["model:read:"]=1;
  118. self._assert_equals_("new",result);
  119. $ctx1.sendIdx["assert:equals:"]=1;
  120. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  121. return smalltalk.withContext(function($ctx2) {
  122. result=r;
  123. return result;
  124. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,5)})}));
  125. $9="foo".__minus_gt(["bar", "new", "baz"]);
  126. $ctx1.sendIdx["->"]=3;
  127. $8=smalltalk.HashedCollection._from_([$9,"moo".__minus_gt("zoo")]);
  128. self._assert_equals_($8,result);
  129. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelModifiesAppropriateValue",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  130. args: [],
  131. source: "testNontrivialModelModifiesAppropriateValue\x0a| isolator model result |\x0aresult := nil.\x0aisolator := Isolator on: #{ 'foo' -> #('bar' #(1 #(2 3)) 'baz'). 'moo' -> 'zoo' }.\x0amodel := EavModel new\x0a\x09getBlock: [ :x | (x root at: 'foo') at: 2 ];\x0a\x09putBlock: [ :x :y | (x root at: 'foo') at: 2 put: y].\x0aisolator model: model modify: [:r|#new].\x0aisolator model: model read: [:r|result := r].\x0aself assert: #new equals: result.\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #{ 'foo' -> #('bar' #new 'baz'). 'moo' -> 'zoo' } equals: result",
  132. messageSends: ["on:", "->", "getBlock:", "new", "at:", "root", "putBlock:", "at:put:", "model:modify:", "model:read:", "assert:equals:"],
  133. referencedClasses: ["Isolator", "EavModel"]
  134. }),
  135. smalltalk.IsolatorTest);
  136. smalltalk.addMethod(
  137. smalltalk.method({
  138. selector: "testNontrivialModelReturnsAppropriateValue",
  139. category: 'tests',
  140. fn: function (){
  141. var self=this;
  142. var isolator,model,result;
  143. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  144. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  145. return smalltalk.withContext(function($ctx1) {
  146. var $2,$1;
  147. result=nil;
  148. $2="foo".__minus_gt(["bar", [(1), [(2), (3)]], "baz"]);
  149. $ctx1.sendIdx["->"]=1;
  150. $1=smalltalk.HashedCollection._from_([$2,"moo".__minus_gt("zoo")]);
  151. isolator=_st($Isolator())._on_($1);
  152. model=_st(_st($EavModel())._new())._getBlock_((function(x){
  153. return smalltalk.withContext(function($ctx2) {
  154. return _st(_st(_st(x)._root())._at_("foo"))._at_((2));
  155. $ctx2.sendIdx["at:"]=1;
  156. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1,1)})}));
  157. _st(isolator)._model_read_(model,(function(r){
  158. return smalltalk.withContext(function($ctx2) {
  159. result=r;
  160. return result;
  161. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  162. self._assert_equals_([(1), [(2), (3)]],result);
  163. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelReturnsAppropriateValue",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  164. args: [],
  165. source: "testNontrivialModelReturnsAppropriateValue\x0a| isolator model result |\x0aresult := nil.\x0aisolator := Isolator on: #{ 'foo' -> #('bar' #(1 #(2 3)) 'baz'). 'moo' -> 'zoo' }.\x0amodel := EavModel new getBlock: [ :x | (x root at: 'foo') at: 2 ].\x0aisolator model: model read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result",
  166. messageSends: ["on:", "->", "getBlock:", "new", "at:", "root", "model:read:", "assert:equals:"],
  167. referencedClasses: ["Isolator", "EavModel"]
  168. }),
  169. smalltalk.IsolatorTest);
  170. smalltalk.addMethod(
  171. smalltalk.method({
  172. selector: "testRootModelExaminesThenModifiesRoot",
  173. category: 'tests',
  174. fn: function (){
  175. var self=this;
  176. var isolator,result;
  177. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  178. return smalltalk.withContext(function($ctx1) {
  179. result=nil;
  180. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  181. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  182. return smalltalk.withContext(function($ctx2) {
  183. return _st(r)._second();
  184. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  185. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  186. return smalltalk.withContext(function($ctx2) {
  187. result=r;
  188. return result;
  189. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  190. self._assert_equals_([(2), (3)],result);
  191. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelExaminesThenModifiesRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  192. args: [],
  193. source: "testRootModelExaminesThenModifiesRoot\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0aisolator model: rootModel modify: [:r|r second].\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #(2 3) equals: result",
  194. messageSends: ["on:", "model:modify:", "second", "model:read:", "assert:equals:"],
  195. referencedClasses: ["Isolator"]
  196. }),
  197. smalltalk.IsolatorTest);
  198. smalltalk.addMethod(
  199. smalltalk.method({
  200. selector: "testRootModelGetsRootForModification",
  201. category: 'tests',
  202. fn: function (){
  203. var self=this;
  204. var isolator,result;
  205. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  206. return smalltalk.withContext(function($ctx1) {
  207. result=nil;
  208. isolator=_st($Isolator())._on_([(2), [(1), (0)]]);
  209. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  210. return smalltalk.withContext(function($ctx2) {
  211. result=r;
  212. return result;
  213. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  214. self._assert_equals_([(2), [(1), (0)]],result);
  215. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelGetsRootForModification",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  216. args: [],
  217. source: "testRootModelGetsRootForModification\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(2 #(1 0)).\x0aisolator model: rootModel modify: [:r|result := r].\x0aself assert: #(2 #(1 0)) equals: result",
  218. messageSends: ["on:", "model:modify:", "assert:equals:"],
  219. referencedClasses: ["Isolator"]
  220. }),
  221. smalltalk.IsolatorTest);
  222. smalltalk.addMethod(
  223. smalltalk.method({
  224. selector: "testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",
  225. category: 'tests',
  226. fn: function (){
  227. var self=this;
  228. var isolator,result,newValue;
  229. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  230. return smalltalk.withContext(function($ctx1) {
  231. result=nil;
  232. newValue=nil;
  233. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  234. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  235. return smalltalk.withContext(function($ctx2) {
  236. newValue=r;
  237. newValue;
  238. _st(r)._at_put_((1),(4));
  239. $ctx2.sendIdx["at:put:"]=1;
  240. return r;
  241. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  242. _st(newValue)._at_put_((2),"bar");
  243. $ctx1.sendIdx["at:put:"]=2;
  244. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  245. return smalltalk.withContext(function($ctx2) {
  246. result=r;
  247. return result;
  248. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  249. _st(newValue)._at_put_((2),"baz");
  250. self._assert_equals_([(4), [(2), (3)]],result);
  251. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  252. args: [],
  253. source: "testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot\x0a| isolator result newValue |\x0aresult := nil. newValue := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0aisolator model: rootModel modify: [:r|newValue := r. r at: 1 put: 4. r].\x0anewValue at: 2 put: 'bar'.\x0aisolator model: rootModel read: [:r|result := r].\x0anewValue at: 2 put: 'baz'.\x0aself assert: #(4 #(2 3)) equals: result",
  254. messageSends: ["on:", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  255. referencedClasses: ["Isolator"]
  256. }),
  257. smalltalk.IsolatorTest);
  258. smalltalk.addMethod(
  259. smalltalk.method({
  260. selector: "testRootModelModifiesAndDeeplyIsolatesRoot",
  261. category: 'tests',
  262. fn: function (){
  263. var self=this;
  264. var isolator,result,newValue;
  265. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  266. return smalltalk.withContext(function($ctx1) {
  267. var $1,$2;
  268. result=nil;
  269. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  270. $1="foo".__minus_gt([(4), (5), (6)]);
  271. $ctx1.sendIdx["->"]=1;
  272. newValue=smalltalk.HashedCollection._from_([$1]);
  273. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  274. return smalltalk.withContext(function($ctx2) {
  275. return newValue;
  276. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  277. $2=_st(newValue)._at_("foo");
  278. $ctx1.sendIdx["at:"]=1;
  279. _st($2)._at_put_((1),"bar");
  280. $ctx1.sendIdx["at:put:"]=1;
  281. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  282. return smalltalk.withContext(function($ctx2) {
  283. result=r;
  284. return result;
  285. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  286. _st(_st(newValue)._at_("foo"))._at_put_((3),"baz");
  287. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  288. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndDeeplyIsolatesRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  289. args: [],
  290. source: "testRootModelModifiesAndDeeplyIsolatesRoot\x0a| isolator result newValue |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0anewValue := #{'foo'->#(4 5 6)}.\x0aisolator model: rootModel modify: [:r|newValue].\x0a(newValue at: 'foo') at: 1 put: 'bar'.\x0aisolator model: rootModel read: [:r|result := r].\x0a(newValue at: 'foo') at: 3 put: 'baz'.\x0aself assert: #{'foo'->#(4 5 6)} equals: result",
  291. messageSends: ["on:", "->", "model:modify:", "at:put:", "at:", "model:read:", "assert:equals:"],
  292. referencedClasses: ["Isolator"]
  293. }),
  294. smalltalk.IsolatorTest);
  295. smalltalk.addMethod(
  296. smalltalk.method({
  297. selector: "testRootModelModifiesAndIsolatesRoot",
  298. category: 'tests',
  299. fn: function (){
  300. var self=this;
  301. var isolator,result,newValue;
  302. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  303. return smalltalk.withContext(function($ctx1) {
  304. var $1;
  305. result=nil;
  306. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  307. $1="foo".__minus_gt([(4), (5), (6)]);
  308. $ctx1.sendIdx["->"]=1;
  309. newValue=smalltalk.HashedCollection._from_([$1]);
  310. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  311. return smalltalk.withContext(function($ctx2) {
  312. return newValue;
  313. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  314. _st(newValue)._at_put_("foo","bar");
  315. $ctx1.sendIdx["at:put:"]=1;
  316. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  317. return smalltalk.withContext(function($ctx2) {
  318. result=r;
  319. return result;
  320. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  321. _st(newValue)._at_put_("foo","baz");
  322. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  323. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndIsolatesRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  324. args: [],
  325. source: "testRootModelModifiesAndIsolatesRoot\x0a| isolator result newValue |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0anewValue := #{'foo'->#(4 5 6)}.\x0aisolator model: rootModel modify: [:r|newValue].\x0anewValue at: 'foo' put: 'bar'.\x0aisolator model: rootModel read: [:r|result := r].\x0anewValue at: 'foo' put: 'baz'.\x0aself assert: #{'foo'->#(4 5 6)} equals: result",
  326. messageSends: ["on:", "->", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  327. referencedClasses: ["Isolator"]
  328. }),
  329. smalltalk.IsolatorTest);
  330. smalltalk.addMethod(
  331. smalltalk.method({
  332. selector: "testRootModelModifiesRoot",
  333. category: 'tests',
  334. fn: function (){
  335. var self=this;
  336. var isolator,result;
  337. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  338. return smalltalk.withContext(function($ctx1) {
  339. var $1;
  340. result=nil;
  341. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  342. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  343. return smalltalk.withContext(function($ctx2) {
  344. $1="foo".__minus_gt([(4), (5), (6)]);
  345. $ctx2.sendIdx["->"]=1;
  346. return smalltalk.HashedCollection._from_([$1]);
  347. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  348. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  349. return smalltalk.withContext(function($ctx2) {
  350. result=r;
  351. return result;
  352. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  353. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  354. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  355. args: [],
  356. source: "testRootModelModifiesRoot\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0aisolator model: rootModel modify: [:r|#{'foo'->#(4 5 6)}].\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #{'foo'->#(4 5 6)} equals: result",
  357. messageSends: ["on:", "model:modify:", "->", "model:read:", "assert:equals:"],
  358. referencedClasses: ["Isolator"]
  359. }),
  360. smalltalk.IsolatorTest);
  361. smalltalk.addMethod(
  362. smalltalk.method({
  363. selector: "testRootModelReturnsDeeplyIsolatedRoot",
  364. category: 'tests',
  365. fn: function (){
  366. var self=this;
  367. var isolator,result;
  368. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  369. return smalltalk.withContext(function($ctx1) {
  370. result=nil;
  371. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  372. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  373. return smalltalk.withContext(function($ctx2) {
  374. return _st(_st(r)._at_((2)))._at_put_((1),(0));
  375. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  376. $ctx1.sendIdx["model:read:"]=1;
  377. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  378. return smalltalk.withContext(function($ctx2) {
  379. result=r;
  380. return result;
  381. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  382. self._assert_equals_([(1), [(2), (3)]],result);
  383. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsDeeplyIsolatedRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  384. args: [],
  385. source: "testRootModelReturnsDeeplyIsolatedRoot\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0aisolator model: rootModel read: [:r|(r at: 2) at: 1 put: 0].\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result",
  386. messageSends: ["on:", "model:read:", "at:put:", "at:", "assert:equals:"],
  387. referencedClasses: ["Isolator"]
  388. }),
  389. smalltalk.IsolatorTest);
  390. smalltalk.addMethod(
  391. smalltalk.method({
  392. selector: "testRootModelReturnsIsolatedRoot",
  393. category: 'tests',
  394. fn: function (){
  395. var self=this;
  396. var isolator,result;
  397. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  398. return smalltalk.withContext(function($ctx1) {
  399. result=nil;
  400. isolator=_st($Isolator())._on_([(1), [(2), (4)]]);
  401. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  402. return smalltalk.withContext(function($ctx2) {
  403. return _st(r)._at_put_((2),nil);
  404. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  405. $ctx1.sendIdx["model:read:"]=1;
  406. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  407. return smalltalk.withContext(function($ctx2) {
  408. result=r;
  409. return result;
  410. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,2)})}));
  411. self._assert_equals_([(1), [(2), (4)]],result);
  412. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsIsolatedRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  413. args: [],
  414. source: "testRootModelReturnsIsolatedRoot\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 4)).\x0aisolator model: rootModel read: [:r|r at: 2 put: nil].\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 4)) equals: result",
  415. messageSends: ["on:", "model:read:", "at:put:", "assert:equals:"],
  416. referencedClasses: ["Isolator"]
  417. }),
  418. smalltalk.IsolatorTest);
  419. smalltalk.addMethod(
  420. smalltalk.method({
  421. selector: "testRootModelReturnsRoot",
  422. category: 'tests',
  423. fn: function (){
  424. var self=this;
  425. var isolator,result;
  426. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  427. return smalltalk.withContext(function($ctx1) {
  428. result=nil;
  429. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  430. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  431. return smalltalk.withContext(function($ctx2) {
  432. result=r;
  433. return result;
  434. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1,1)})}));
  435. self._assert_equals_([(1), [(2), (3)]],result);
  436. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  437. args: [],
  438. source: "testRootModelReturnsRoot\x0a| isolator result |\x0aresult := nil.\x0aisolator := Isolator on: #(1 #(2 3)).\x0aisolator model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result",
  439. messageSends: ["on:", "model:read:", "assert:equals:"],
  440. referencedClasses: ["Isolator"]
  441. }),
  442. smalltalk.IsolatorTest);
  443. });