Trapped-Tests.js 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. define("gh_herby_trapped/Trapped-Tests", ["amber_vm/smalltalk", "amber_vm/nil", "amber_vm/_st", "amber/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)})}));
  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)})}));
  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:", "root", "new", "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 $1,$2;
  42. result=nil;
  43. isolator=_st($Isolator())._on_(smalltalk.HashedCollection._from_(["foo".__minus_gt(["bar", [(1), [(2), (5)]], "baz"]),"moo".__minus_gt("zoo")]));
  44. $1=_st($EavModel())._new();
  45. _st($1)._getBlock_((function(x){
  46. return smalltalk.withContext(function($ctx2) {
  47. return _st(_st(_st(x)._root())._at_("foo"))._at_((2));
  48. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1)})}));
  49. $2=_st($1)._putBlock_((function(x,y){
  50. return smalltalk.withContext(function($ctx2) {
  51. return _st(_st(_st(x)._root())._at_("foo"))._at_put_((2),y);
  52. }, function($ctx2) {$ctx2.fillBlock({x:x,y:y},$ctx1)})}));
  53. model=$2;
  54. _st(isolator)._model_modify_(model,(function(r){
  55. return smalltalk.withContext(function($ctx2) {
  56. result=r;
  57. return result;
  58. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  59. self._assert_equals_([(1), [(2), (5)]],result);
  60. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelGetsAppropriateValueForModification",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  61. args: [],
  62. 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",
  63. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "putBlock:", "at:put:", "model:modify:", "assert:equals:"],
  64. referencedClasses: ["Isolator", "EavModel"]
  65. }),
  66. smalltalk.IsolatorTest);
  67. smalltalk.addMethod(
  68. smalltalk.method({
  69. selector: "testNontrivialModelModifiesAppropriateValue",
  70. category: 'tests',
  71. fn: function (){
  72. var self=this;
  73. var isolator,model,result;
  74. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  75. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  76. return smalltalk.withContext(function($ctx1) {
  77. var $1,$2;
  78. result=nil;
  79. isolator=_st($Isolator())._on_(smalltalk.HashedCollection._from_(["foo".__minus_gt(["bar", [(1), [(2), (3)]], "baz"]),"moo".__minus_gt("zoo")]));
  80. $1=_st($EavModel())._new();
  81. _st($1)._getBlock_((function(x){
  82. return smalltalk.withContext(function($ctx2) {
  83. return _st(_st(_st(x)._root())._at_("foo"))._at_((2));
  84. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1)})}));
  85. $2=_st($1)._putBlock_((function(x,y){
  86. return smalltalk.withContext(function($ctx2) {
  87. return _st(_st(_st(x)._root())._at_("foo"))._at_put_((2),y);
  88. }, function($ctx2) {$ctx2.fillBlock({x:x,y:y},$ctx1)})}));
  89. model=$2;
  90. _st(isolator)._model_modify_(model,(function(r){
  91. return smalltalk.withContext(function($ctx2) {
  92. return "new";
  93. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  94. _st(isolator)._model_read_(model,(function(r){
  95. return smalltalk.withContext(function($ctx2) {
  96. result=r;
  97. return result;
  98. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  99. self._assert_equals_("new",result);
  100. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  101. return smalltalk.withContext(function($ctx2) {
  102. result=r;
  103. return result;
  104. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  105. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt(["bar", "new", "baz"]),"moo".__minus_gt("zoo")]),result);
  106. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelModifiesAppropriateValue",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  107. args: [],
  108. 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",
  109. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "putBlock:", "at:put:", "model:modify:", "model:read:", "assert:equals:"],
  110. referencedClasses: ["Isolator", "EavModel"]
  111. }),
  112. smalltalk.IsolatorTest);
  113. smalltalk.addMethod(
  114. smalltalk.method({
  115. selector: "testNontrivialModelReturnsAppropriateValue",
  116. category: 'tests',
  117. fn: function (){
  118. var self=this;
  119. var isolator,model,result;
  120. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  121. function $EavModel(){return smalltalk.EavModel||(typeof EavModel=="undefined"?nil:EavModel)}
  122. return smalltalk.withContext(function($ctx1) {
  123. result=nil;
  124. isolator=_st($Isolator())._on_(smalltalk.HashedCollection._from_(["foo".__minus_gt(["bar", [(1), [(2), (3)]], "baz"]),"moo".__minus_gt("zoo")]));
  125. model=_st(_st($EavModel())._new())._getBlock_((function(x){
  126. return smalltalk.withContext(function($ctx2) {
  127. return _st(_st(_st(x)._root())._at_("foo"))._at_((2));
  128. }, function($ctx2) {$ctx2.fillBlock({x:x},$ctx1)})}));
  129. _st(isolator)._model_read_(model,(function(r){
  130. return smalltalk.withContext(function($ctx2) {
  131. result=r;
  132. return result;
  133. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  134. self._assert_equals_([(1), [(2), (3)]],result);
  135. return self}, function($ctx1) {$ctx1.fill(self,"testNontrivialModelReturnsAppropriateValue",{isolator:isolator,model:model,result:result},smalltalk.IsolatorTest)})},
  136. args: [],
  137. 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",
  138. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "model:read:", "assert:equals:"],
  139. referencedClasses: ["Isolator", "EavModel"]
  140. }),
  141. smalltalk.IsolatorTest);
  142. smalltalk.addMethod(
  143. smalltalk.method({
  144. selector: "testRootModelExaminesThenModifiesRoot",
  145. category: 'tests',
  146. fn: function (){
  147. var self=this;
  148. var isolator,result;
  149. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  150. return smalltalk.withContext(function($ctx1) {
  151. result=nil;
  152. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  153. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  154. return smalltalk.withContext(function($ctx2) {
  155. return _st(r)._second();
  156. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  157. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  158. return smalltalk.withContext(function($ctx2) {
  159. result=r;
  160. return result;
  161. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  162. self._assert_equals_([(2), (3)],result);
  163. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelExaminesThenModifiesRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  164. args: [],
  165. 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",
  166. messageSends: ["on:", "model:modify:", "second", "model:read:", "assert:equals:"],
  167. referencedClasses: ["Isolator"]
  168. }),
  169. smalltalk.IsolatorTest);
  170. smalltalk.addMethod(
  171. smalltalk.method({
  172. selector: "testRootModelGetsRootForModification",
  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_([(2), [(1), (0)]]);
  181. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  182. return smalltalk.withContext(function($ctx2) {
  183. result=r;
  184. return result;
  185. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  186. self._assert_equals_([(2), [(1), (0)]],result);
  187. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelGetsRootForModification",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  188. args: [],
  189. 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",
  190. messageSends: ["on:", "model:modify:", "assert:equals:"],
  191. referencedClasses: ["Isolator"]
  192. }),
  193. smalltalk.IsolatorTest);
  194. smalltalk.addMethod(
  195. smalltalk.method({
  196. selector: "testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",
  197. category: 'tests',
  198. fn: function (){
  199. var self=this;
  200. var isolator,result,newValue;
  201. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  202. return smalltalk.withContext(function($ctx1) {
  203. result=nil;
  204. newValue=nil;
  205. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  206. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  207. return smalltalk.withContext(function($ctx2) {
  208. newValue=r;
  209. newValue;
  210. _st(r)._at_put_((1),(4));
  211. return r;
  212. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  213. _st(newValue)._at_put_((2),"bar");
  214. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  215. return smalltalk.withContext(function($ctx2) {
  216. result=r;
  217. return result;
  218. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  219. _st(newValue)._at_put_((2),"baz");
  220. self._assert_equals_([(4), [(2), (3)]],result);
  221. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  222. args: [],
  223. 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",
  224. messageSends: ["on:", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  225. referencedClasses: ["Isolator"]
  226. }),
  227. smalltalk.IsolatorTest);
  228. smalltalk.addMethod(
  229. smalltalk.method({
  230. selector: "testRootModelModifiesAndDeeplyIsolatesRoot",
  231. category: 'tests',
  232. fn: function (){
  233. var self=this;
  234. var isolator,result,newValue;
  235. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  236. return smalltalk.withContext(function($ctx1) {
  237. result=nil;
  238. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  239. newValue=smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]);
  240. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  241. return smalltalk.withContext(function($ctx2) {
  242. return newValue;
  243. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  244. _st(_st(newValue)._at_("foo"))._at_put_((1),"bar");
  245. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  246. return smalltalk.withContext(function($ctx2) {
  247. result=r;
  248. return result;
  249. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  250. _st(_st(newValue)._at_("foo"))._at_put_((3),"baz");
  251. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  252. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndDeeplyIsolatesRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  253. args: [],
  254. 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",
  255. messageSends: ["on:", "->", "model:modify:", "at:put:", "at:", "model:read:", "assert:equals:"],
  256. referencedClasses: ["Isolator"]
  257. }),
  258. smalltalk.IsolatorTest);
  259. smalltalk.addMethod(
  260. smalltalk.method({
  261. selector: "testRootModelModifiesAndIsolatesRoot",
  262. category: 'tests',
  263. fn: function (){
  264. var self=this;
  265. var isolator,result,newValue;
  266. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  267. return smalltalk.withContext(function($ctx1) {
  268. result=nil;
  269. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  270. newValue=smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]);
  271. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  272. return smalltalk.withContext(function($ctx2) {
  273. return newValue;
  274. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  275. _st(newValue)._at_put_("foo","bar");
  276. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  277. return smalltalk.withContext(function($ctx2) {
  278. result=r;
  279. return result;
  280. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  281. _st(newValue)._at_put_("foo","baz");
  282. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  283. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesAndIsolatesRoot",{isolator:isolator,result:result,newValue:newValue},smalltalk.IsolatorTest)})},
  284. args: [],
  285. 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",
  286. messageSends: ["on:", "->", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  287. referencedClasses: ["Isolator"]
  288. }),
  289. smalltalk.IsolatorTest);
  290. smalltalk.addMethod(
  291. smalltalk.method({
  292. selector: "testRootModelModifiesRoot",
  293. category: 'tests',
  294. fn: function (){
  295. var self=this;
  296. var isolator,result;
  297. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  298. return smalltalk.withContext(function($ctx1) {
  299. result=nil;
  300. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  301. _st(isolator)._model_modify_(self["@rootModel"],(function(r){
  302. return smalltalk.withContext(function($ctx2) {
  303. return smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]);
  304. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  305. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  306. return smalltalk.withContext(function($ctx2) {
  307. result=r;
  308. return result;
  309. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  310. self._assert_equals_(smalltalk.HashedCollection._from_(["foo".__minus_gt([(4), (5), (6)])]),result);
  311. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelModifiesRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  312. args: [],
  313. 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",
  314. messageSends: ["on:", "model:modify:", "->", "model:read:", "assert:equals:"],
  315. referencedClasses: ["Isolator"]
  316. }),
  317. smalltalk.IsolatorTest);
  318. smalltalk.addMethod(
  319. smalltalk.method({
  320. selector: "testRootModelReturnsDeeplyIsolatedRoot",
  321. category: 'tests',
  322. fn: function (){
  323. var self=this;
  324. var isolator,result;
  325. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  326. return smalltalk.withContext(function($ctx1) {
  327. result=nil;
  328. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  329. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  330. return smalltalk.withContext(function($ctx2) {
  331. return _st(_st(r)._at_((2)))._at_put_((1),(0));
  332. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  333. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  334. return smalltalk.withContext(function($ctx2) {
  335. result=r;
  336. return result;
  337. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  338. self._assert_equals_([(1), [(2), (3)]],result);
  339. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsDeeplyIsolatedRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  340. args: [],
  341. 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",
  342. messageSends: ["on:", "model:read:", "at:put:", "at:", "assert:equals:"],
  343. referencedClasses: ["Isolator"]
  344. }),
  345. smalltalk.IsolatorTest);
  346. smalltalk.addMethod(
  347. smalltalk.method({
  348. selector: "testRootModelReturnsIsolatedRoot",
  349. category: 'tests',
  350. fn: function (){
  351. var self=this;
  352. var isolator,result;
  353. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  354. return smalltalk.withContext(function($ctx1) {
  355. result=nil;
  356. isolator=_st($Isolator())._on_([(1), [(2), (4)]]);
  357. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  358. return smalltalk.withContext(function($ctx2) {
  359. return _st(r)._at_put_((2),nil);
  360. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  361. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  362. return smalltalk.withContext(function($ctx2) {
  363. result=r;
  364. return result;
  365. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  366. self._assert_equals_([(1), [(2), (4)]],result);
  367. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsIsolatedRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  368. args: [],
  369. 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",
  370. messageSends: ["on:", "model:read:", "at:put:", "assert:equals:"],
  371. referencedClasses: ["Isolator"]
  372. }),
  373. smalltalk.IsolatorTest);
  374. smalltalk.addMethod(
  375. smalltalk.method({
  376. selector: "testRootModelReturnsRoot",
  377. category: 'tests',
  378. fn: function (){
  379. var self=this;
  380. var isolator,result;
  381. function $Isolator(){return smalltalk.Isolator||(typeof Isolator=="undefined"?nil:Isolator)}
  382. return smalltalk.withContext(function($ctx1) {
  383. result=nil;
  384. isolator=_st($Isolator())._on_([(1), [(2), (3)]]);
  385. _st(isolator)._model_read_(self["@rootModel"],(function(r){
  386. return smalltalk.withContext(function($ctx2) {
  387. result=r;
  388. return result;
  389. }, function($ctx2) {$ctx2.fillBlock({r:r},$ctx1)})}));
  390. self._assert_equals_([(1), [(2), (3)]],result);
  391. return self}, function($ctx1) {$ctx1.fill(self,"testRootModelReturnsRoot",{isolator:isolator,result:result},smalltalk.IsolatorTest)})},
  392. args: [],
  393. 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",
  394. messageSends: ["on:", "model:read:", "assert:equals:"],
  395. referencedClasses: ["Isolator"]
  396. }),
  397. smalltalk.IsolatorTest);
  398. });