Trapped-Tests.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371
  1. smalltalk.addPackage('Trapped-Tests', {});
  2. smalltalk.addClass('IsolatorTest', smalltalk.TestCase, ['rootModel'], 'Trapped-Tests');
  3. smalltalk.addMethod(
  4. "_setUp",
  5. smalltalk.method({
  6. selector: "setUp",
  7. category: 'running',
  8. fn: function (){
  9. var self=this;
  10. var $1,$2;
  11. $1=smalltalk.send((smalltalk.EavModel || EavModel),"_new",[]);
  12. smalltalk.send($1,"_getBlock_",[(function(x){
  13. return smalltalk.send(x,"_root",[]);
  14. })]);
  15. $2=smalltalk.send($1,"_putBlock_",[(function(x,y){
  16. return smalltalk.send(x,"_root_",[y]);
  17. })]);
  18. self["@rootModel"]=$2;
  19. return self},
  20. args: [],
  21. source: "setUp\x0a\x0arootModel := EavModel new\x0a\x09getBlock: [:x | x root];\x0a putBlock: [:x :y | x root: y].\x0a",
  22. messageSends: ["getBlock:", "root", "new", "putBlock:", "root:"],
  23. referencedClasses: ["EavModel"]
  24. }),
  25. smalltalk.IsolatorTest);
  26. smalltalk.addMethod(
  27. "_testNontrivialModelGetsAppropriateValueForModification",
  28. smalltalk.method({
  29. selector: "testNontrivialModelGetsAppropriateValueForModification",
  30. category: 'tests',
  31. fn: function (){
  32. var self=this;
  33. var $1,$2;
  34. var bb;
  35. var model;
  36. var result;
  37. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[["bar", [(1), [(2), (5)]], "baz"]]),smalltalk.send("moo","__minus_gt",["zoo"])])]);
  38. $1=smalltalk.send((smalltalk.EavModel || EavModel),"_new",[]);
  39. smalltalk.send($1,"_getBlock_",[(function(x){
  40. return smalltalk.send(smalltalk.send(smalltalk.send(x,"_root",[]),"_at_",["foo"]),"_at_",[(2)]);
  41. })]);
  42. $2=smalltalk.send($1,"_putBlock_",[(function(x,y){
  43. return smalltalk.send(smalltalk.send(smalltalk.send(x,"_root",[]),"_at_",["foo"]),"_at_put_",[(2),y]);
  44. })]);
  45. model=$2;
  46. smalltalk.send(bb,"_model_modify_",[model,(function(r){
  47. result=r;
  48. return result;
  49. })]);
  50. smalltalk.send(self,"_assert_equals_",[[(1), [(2), (5)]],result]);
  51. return self},
  52. args: [],
  53. source: "testNontrivialModelGetsAppropriateValueForModification\x0a| bb model result |\x0abb := 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].\x0abb model: model modify: [:r|result := r].\x0aself assert: #(1 #(2 5)) equals: result\x0a",
  54. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "putBlock:", "at:put:", "model:modify:", "assert:equals:"],
  55. referencedClasses: ["Isolator", "EavModel"]
  56. }),
  57. smalltalk.IsolatorTest);
  58. smalltalk.addMethod(
  59. "_testNontrivialModelModifiesAppropriateValue",
  60. smalltalk.method({
  61. selector: "testNontrivialModelModifiesAppropriateValue",
  62. category: 'tests',
  63. fn: function (){
  64. var self=this;
  65. var $1,$2;
  66. var bb;
  67. var model;
  68. var result;
  69. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[["bar", [(1), [(2), (3)]], "baz"]]),smalltalk.send("moo","__minus_gt",["zoo"])])]);
  70. $1=smalltalk.send((smalltalk.EavModel || EavModel),"_new",[]);
  71. smalltalk.send($1,"_getBlock_",[(function(x){
  72. return smalltalk.send(smalltalk.send(smalltalk.send(x,"_root",[]),"_at_",["foo"]),"_at_",[(2)]);
  73. })]);
  74. $2=smalltalk.send($1,"_putBlock_",[(function(x,y){
  75. return smalltalk.send(smalltalk.send(smalltalk.send(x,"_root",[]),"_at_",["foo"]),"_at_put_",[(2),y]);
  76. })]);
  77. model=$2;
  78. smalltalk.send(bb,"_model_modify_",[model,(function(r){
  79. return smalltalk.symbolFor("new");
  80. })]);
  81. smalltalk.send(bb,"_model_read_",[model,(function(r){
  82. result=r;
  83. return result;
  84. })]);
  85. smalltalk.send(self,"_assert_equals_",[smalltalk.symbolFor("new"),result]);
  86. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  87. result=r;
  88. return result;
  89. })]);
  90. smalltalk.send(self,"_assert_equals_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[["bar", smalltalk.symbolFor("new"), "baz"]]),smalltalk.send("moo","__minus_gt",["zoo"])]),result]);
  91. return self},
  92. args: [],
  93. source: "testNontrivialModelModifiesAppropriateValue\x0a| bb model result |\x0abb := 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].\x0abb model: model modify: [:r|#new].\x0abb model: model read: [:r|result := r].\x0aself assert: #new equals: result.\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #{ 'foo' -> #('bar' #new 'baz'). 'moo' -> 'zoo' } equals: result\x0a",
  94. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "putBlock:", "at:put:", "model:modify:", "model:read:", "assert:equals:"],
  95. referencedClasses: ["Isolator", "EavModel"]
  96. }),
  97. smalltalk.IsolatorTest);
  98. smalltalk.addMethod(
  99. "_testNontrivialModelReturnsAppropriateValue",
  100. smalltalk.method({
  101. selector: "testNontrivialModelReturnsAppropriateValue",
  102. category: 'tests',
  103. fn: function (){
  104. var self=this;
  105. var bb;
  106. var model;
  107. var result;
  108. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[["bar", [(1), [(2), (3)]], "baz"]]),smalltalk.send("moo","__minus_gt",["zoo"])])]);
  109. model=smalltalk.send(smalltalk.send((smalltalk.EavModel || EavModel),"_new",[]),"_getBlock_",[(function(x){
  110. return smalltalk.send(smalltalk.send(smalltalk.send(x,"_root",[]),"_at_",["foo"]),"_at_",[(2)]);
  111. })]);
  112. smalltalk.send(bb,"_model_read_",[model,(function(r){
  113. result=r;
  114. return result;
  115. })]);
  116. smalltalk.send(self,"_assert_equals_",[[(1), [(2), (3)]],result]);
  117. return self},
  118. args: [],
  119. source: "testNontrivialModelReturnsAppropriateValue\x0a| bb model result |\x0abb := Isolator on: #{ 'foo' -> #('bar' #(1 #(2 3)) 'baz'). 'moo' -> 'zoo' }.\x0amodel := EavModel new getBlock: [ :x | (x root at: 'foo') at: 2 ].\x0abb model: model read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result\x0a",
  120. messageSends: ["on:", "->", "getBlock:", "at:", "root", "new", "model:read:", "assert:equals:"],
  121. referencedClasses: ["Isolator", "EavModel"]
  122. }),
  123. smalltalk.IsolatorTest);
  124. smalltalk.addMethod(
  125. "_testRootModelExaminesThenModifiesRoot",
  126. smalltalk.method({
  127. selector: "testRootModelExaminesThenModifiesRoot",
  128. category: 'tests',
  129. fn: function (){
  130. var self=this;
  131. var bb;
  132. var result;
  133. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  134. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  135. return smalltalk.send(r,"_second",[]);
  136. })]);
  137. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  138. result=r;
  139. return result;
  140. })]);
  141. smalltalk.send(self,"_assert_equals_",[[(2), (3)],result]);
  142. return self},
  143. args: [],
  144. source: "testRootModelExaminesThenModifiesRoot\x0a| bb result |\x0abb := Isolator on: #(1 #(2 3)).\x0abb model: rootModel modify: [:r|r second].\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #(2 3) equals: result\x0a",
  145. messageSends: ["on:", "model:modify:", "second", "model:read:", "assert:equals:"],
  146. referencedClasses: ["Isolator"]
  147. }),
  148. smalltalk.IsolatorTest);
  149. smalltalk.addMethod(
  150. "_testRootModelGetsRootForModification",
  151. smalltalk.method({
  152. selector: "testRootModelGetsRootForModification",
  153. category: 'tests',
  154. fn: function (){
  155. var self=this;
  156. var bb;
  157. var result;
  158. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(2), [(1), (0)]]]);
  159. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  160. result=r;
  161. return result;
  162. })]);
  163. smalltalk.send(self,"_assert_equals_",[[(2), [(1), (0)]],result]);
  164. return self},
  165. args: [],
  166. source: "testRootModelGetsRootForModification\x0a| bb result |\x0abb := Isolator on: #(2 #(1 0)).\x0abb model: rootModel modify: [:r|result := r].\x0aself assert: #(2 #(1 0)) equals: result\x0a",
  167. messageSends: ["on:", "model:modify:", "assert:equals:"],
  168. referencedClasses: ["Isolator"]
  169. }),
  170. smalltalk.IsolatorTest);
  171. smalltalk.addMethod(
  172. "_testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",
  173. smalltalk.method({
  174. selector: "testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot",
  175. category: 'tests',
  176. fn: function (){
  177. var self=this;
  178. var bb;
  179. var result;
  180. var newValue;
  181. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  182. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  183. newValue=r;
  184. newValue;
  185. smalltalk.send(r,"_at_put_",[(1),(4)]);
  186. return r;
  187. })]);
  188. smalltalk.send(newValue,"_at_put_",[(2),"bar"]);
  189. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  190. result=r;
  191. return result;
  192. })]);
  193. smalltalk.send(newValue,"_at_put_",[(2),"baz"]);
  194. smalltalk.send(self,"_assert_equals_",[[(4), [(2), (3)]],result]);
  195. return self},
  196. args: [],
  197. source: "testRootModelModifiesAndDeeplyIsolatesInPlaceModifiedRoot\x0a| bb result newValue |\x0abb := Isolator on: #(1 #(2 3)).\x0abb model: rootModel modify: [:r|newValue := r. r at: 1 put: 4. r].\x0anewValue at: 2 put: 'bar'.\x0abb model: rootModel read: [:r|result := r].\x0anewValue at: 2 put: 'baz'.\x0aself assert: #(4 #(2 3)) equals: result\x0a",
  198. messageSends: ["on:", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  199. referencedClasses: ["Isolator"]
  200. }),
  201. smalltalk.IsolatorTest);
  202. smalltalk.addMethod(
  203. "_testRootModelModifiesAndDeeplyIsolatesRoot",
  204. smalltalk.method({
  205. selector: "testRootModelModifiesAndDeeplyIsolatesRoot",
  206. category: 'tests',
  207. fn: function (){
  208. var self=this;
  209. var bb;
  210. var result;
  211. var newValue;
  212. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  213. newValue=smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]);
  214. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  215. return newValue;
  216. })]);
  217. smalltalk.send(smalltalk.send(newValue,"_at_",["foo"]),"_at_put_",[(1),"bar"]);
  218. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  219. result=r;
  220. return result;
  221. })]);
  222. smalltalk.send(smalltalk.send(newValue,"_at_",["foo"]),"_at_put_",[(3),"baz"]);
  223. smalltalk.send(self,"_assert_equals_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]),result]);
  224. return self},
  225. args: [],
  226. source: "testRootModelModifiesAndDeeplyIsolatesRoot\x0a| bb result newValue |\x0abb := Isolator on: #(1 #(2 3)).\x0anewValue := #{'foo'->#(4 5 6)}.\x0abb model: rootModel modify: [:r|newValue].\x0a(newValue at: 'foo') at: 1 put: 'bar'.\x0abb model: rootModel read: [:r|result := r].\x0a(newValue at: 'foo') at: 3 put: 'baz'.\x0aself assert: #{'foo'->#(4 5 6)} equals: result\x0a",
  227. messageSends: ["on:", "->", "model:modify:", "at:put:", "at:", "model:read:", "assert:equals:"],
  228. referencedClasses: ["Isolator"]
  229. }),
  230. smalltalk.IsolatorTest);
  231. smalltalk.addMethod(
  232. "_testRootModelModifiesAndIsolatesRoot",
  233. smalltalk.method({
  234. selector: "testRootModelModifiesAndIsolatesRoot",
  235. category: 'tests',
  236. fn: function (){
  237. var self=this;
  238. var bb;
  239. var result;
  240. var newValue;
  241. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  242. newValue=smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]);
  243. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  244. return newValue;
  245. })]);
  246. smalltalk.send(newValue,"_at_put_",["foo","bar"]);
  247. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  248. result=r;
  249. return result;
  250. })]);
  251. smalltalk.send(newValue,"_at_put_",["foo","baz"]);
  252. smalltalk.send(self,"_assert_equals_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]),result]);
  253. return self},
  254. args: [],
  255. source: "testRootModelModifiesAndIsolatesRoot\x0a| bb result newValue |\x0abb := Isolator on: #(1 #(2 3)).\x0anewValue := #{'foo'->#(4 5 6)}.\x0abb model: rootModel modify: [:r|newValue].\x0anewValue at: 'foo' put: 'bar'.\x0abb model: rootModel read: [:r|result := r].\x0anewValue at: 'foo' put: 'baz'.\x0aself assert: #{'foo'->#(4 5 6)} equals: result\x0a",
  256. messageSends: ["on:", "->", "model:modify:", "at:put:", "model:read:", "assert:equals:"],
  257. referencedClasses: ["Isolator"]
  258. }),
  259. smalltalk.IsolatorTest);
  260. smalltalk.addMethod(
  261. "_testRootModelModifiesRoot",
  262. smalltalk.method({
  263. selector: "testRootModelModifiesRoot",
  264. category: 'tests',
  265. fn: function (){
  266. var self=this;
  267. var bb;
  268. var result;
  269. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  270. smalltalk.send(bb,"_model_modify_",[self["@rootModel"],(function(r){
  271. return smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]);
  272. })]);
  273. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  274. result=r;
  275. return result;
  276. })]);
  277. smalltalk.send(self,"_assert_equals_",[smalltalk.HashedCollection._fromPairs_([smalltalk.send("foo","__minus_gt",[[(4), (5), (6)]])]),result]);
  278. return self},
  279. args: [],
  280. source: "testRootModelModifiesRoot\x0a| bb result |\x0abb := Isolator on: #(1 #(2 3)).\x0abb model: rootModel modify: [:r|#{'foo'->#(4 5 6)}].\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #{'foo'->#(4 5 6)} equals: result\x0a",
  281. messageSends: ["on:", "model:modify:", "->", "model:read:", "assert:equals:"],
  282. referencedClasses: ["Isolator"]
  283. }),
  284. smalltalk.IsolatorTest);
  285. smalltalk.addMethod(
  286. "_testRootModelReturnsDeeplyIsolatedRoot",
  287. smalltalk.method({
  288. selector: "testRootModelReturnsDeeplyIsolatedRoot",
  289. category: 'tests',
  290. fn: function (){
  291. var self=this;
  292. var bb;
  293. var result;
  294. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  295. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  296. return smalltalk.send(smalltalk.send(r,"_at_",[(2)]),"_at_put_",[(1),(0)]);
  297. })]);
  298. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  299. result=r;
  300. return result;
  301. })]);
  302. smalltalk.send(self,"_assert_equals_",[[(1), [(2), (3)]],result]);
  303. return self},
  304. args: [],
  305. source: "testRootModelReturnsDeeplyIsolatedRoot\x0a| bb result |\x0abb := Isolator on: #(1 #(2 3)).\x0abb model: rootModel read: [:r|(r at: 2) at: 1 put: 0].\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result\x0a",
  306. messageSends: ["on:", "model:read:", "at:put:", "at:", "assert:equals:"],
  307. referencedClasses: ["Isolator"]
  308. }),
  309. smalltalk.IsolatorTest);
  310. smalltalk.addMethod(
  311. "_testRootModelReturnsIsolatedRoot",
  312. smalltalk.method({
  313. selector: "testRootModelReturnsIsolatedRoot",
  314. category: 'tests',
  315. fn: function (){
  316. var self=this;
  317. var bb;
  318. var result;
  319. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (4)]]]);
  320. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  321. return smalltalk.send(r,"_at_put_",[(2),nil]);
  322. })]);
  323. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  324. result=r;
  325. return result;
  326. })]);
  327. smalltalk.send(self,"_assert_equals_",[[(1), [(2), (4)]],result]);
  328. return self},
  329. args: [],
  330. source: "testRootModelReturnsIsolatedRoot\x0a| bb result |\x0abb := Isolator on: #(1 #(2 4)).\x0abb model: rootModel read: [:r|r at: 2 put: nil].\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 4)) equals: result\x0a",
  331. messageSends: ["on:", "model:read:", "at:put:", "assert:equals:"],
  332. referencedClasses: ["Isolator"]
  333. }),
  334. smalltalk.IsolatorTest);
  335. smalltalk.addMethod(
  336. "_testRootModelReturnsRoot",
  337. smalltalk.method({
  338. selector: "testRootModelReturnsRoot",
  339. category: 'tests',
  340. fn: function (){
  341. var self=this;
  342. var bb;
  343. var result;
  344. bb=smalltalk.send((smalltalk.Isolator || Isolator),"_on_",[[(1), [(2), (3)]]]);
  345. smalltalk.send(bb,"_model_read_",[self["@rootModel"],(function(r){
  346. result=r;
  347. return result;
  348. })]);
  349. smalltalk.send(self,"_assert_equals_",[[(1), [(2), (3)]],result]);
  350. return self},
  351. args: [],
  352. source: "testRootModelReturnsRoot\x0a| bb result |\x0abb := Isolator on: #(1 #(2 3)).\x0abb model: rootModel read: [:r|result := r].\x0aself assert: #(1 #(2 3)) equals: result\x0a",
  353. messageSends: ["on:", "model:read:", "assert:equals:"],
  354. referencedClasses: ["Isolator"]
  355. }),
  356. smalltalk.IsolatorTest);