/wheels/tests/model/crud/deletes.cfc

http://cfwheels.googlecode.com/ · ColdFusion CFScript · 173 lines · 156 code · 17 blank · 0 comment · 0 complexity · e8fe57572e97e9a9f987732d294054c9 MD5 · raw file

  1. <cfcomponent extends="wheelsMapping.Test">
  2. <cffunction name="test_delete">
  3. <cftransaction action="begin">
  4. <cfset loc.author = model("Author").findOne()>
  5. <cfset loc.author.delete()>
  6. <cfset loc.allAuthors = model("Author").findAll()>
  7. <cftransaction action="rollback" />
  8. </cftransaction>
  9. <cfset assert('loc.allAuthors.recordcount eq 6')>
  10. </cffunction>
  11. <cffunction name="test_soft_delete">
  12. <cftransaction action="begin">
  13. <cfset loc.post = model("Post").findOne()>
  14. <cfset loc.post.delete()>
  15. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  16. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  17. <cftransaction action="rollback" />
  18. </cftransaction>
  19. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 4')>
  20. </cffunction>
  21. <cffunction name="test_permanent_delete">
  22. <cftransaction action="begin">
  23. <cfset loc.post = model("Post").findOne()>
  24. <cfset loc.post.delete(softDelete=false)>
  25. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  26. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  27. <cftransaction action="rollback" />
  28. </cftransaction>
  29. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  30. </cffunction>
  31. <cffunction name="test_permanent_delete_of_soft_deleted_records">
  32. <cftransaction action="begin">
  33. <cfset loc.post = model("Post").findOne()>
  34. <cfset loc.post.delete()>
  35. <cfset loc.softDeletedPost = model("Post").findByKey(key=loc.post.id, includeSoftDeletes=true)>
  36. <cfset loc.softDeletedPost.delete(includeSoftDeletes=true, softDelete=false)>
  37. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  38. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  39. <cftransaction action="rollback" />
  40. </cftransaction>
  41. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  42. </cffunction>
  43. <cffunction name="test_delete_by_key">
  44. <cftransaction action="begin">
  45. <cfset loc.post = model("Author").findOne()>
  46. <cfset model("Author").deleteByKey(loc.post.id)>
  47. <cfset loc.allAuthors = model("Author").findAll()>
  48. <cftransaction action="rollback" />
  49. </cftransaction>
  50. <cfset assert('loc.allAuthors.recordcount eq 6')>
  51. </cffunction>
  52. <cffunction name="test_soft_delete_by_key">
  53. <cftransaction action="begin">
  54. <cfset loc.post = model("Post").findOne()>
  55. <cfset model("Post").deleteByKey(loc.post.id)>
  56. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll(includeSoftDeletes=false)>
  57. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  58. <cftransaction action="rollback" />
  59. </cftransaction>
  60. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 4')>
  61. </cffunction>
  62. <cffunction name="test_permanent_delete_by_key">
  63. <cftransaction action="begin">
  64. <cfset loc.post = model("Post").findOne()>
  65. <cfset model("Post").deleteByKey(key=loc.post.id, softDelete=false)>
  66. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  67. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  68. <cftransaction action="rollback" />
  69. </cftransaction>
  70. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  71. </cffunction>
  72. <cffunction name="test_permanent_delete_by_key_of_soft_deleted_records">
  73. <cftransaction action="begin">
  74. <cfset loc.post = model("Post").findOne()>
  75. <cfset model("Post").deleteOne(where="id=#loc.post.id#")>
  76. <cfset model("Post").deleteOne(where="id=#loc.post.id#", includeSoftDeletes=true, softDelete=false)>
  77. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  78. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  79. <cftransaction action="rollback" />
  80. </cftransaction>
  81. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  82. </cffunction>
  83. <cffunction name="test_delete_one">
  84. <cftransaction action="begin">
  85. <cfset model("Author").deleteOne()>
  86. <cfset loc.allAuthors = model("Author").findAll()>
  87. <cftransaction action="rollback" />
  88. </cftransaction>
  89. <cfset assert('loc.allAuthors.recordcount eq 6')>
  90. </cffunction>
  91. <cffunction name="test_soft_delete_one">
  92. <cftransaction action="begin">
  93. <cfset model("Post").deleteOne()>
  94. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  95. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  96. <cftransaction action="rollback" />
  97. </cftransaction>
  98. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 4')>
  99. </cffunction>
  100. <cffunction name="test_permanent_delete_one">
  101. <cftransaction action="begin">
  102. <cfset model("Post").deleteOne(softDelete=false)>
  103. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  104. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  105. <cftransaction action="rollback" />
  106. </cftransaction>
  107. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  108. </cffunction>
  109. <cffunction name="test_permanent_delete_one_of_soft_deleted_records">
  110. <cftransaction action="begin">
  111. <cfset loc.post = model("Post").findOne()>
  112. <cfset model("Post").deleteOne(where="id=#loc.post.id#")>
  113. <cfset model("Post").deleteOne(where="id=#loc.post.id#", includeSoftDeletes=true, softDelete=false)>
  114. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  115. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  116. <cftransaction action="rollback" />
  117. </cftransaction>
  118. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 3 AND loc.postsWithSoftDeletes.recordcount eq 3')>
  119. </cffunction>
  120. <cffunction name="test_delete_all">
  121. <cftransaction action="begin">
  122. <cfset model("Author").deleteAll()>
  123. <cfset loc.allAuthors = model("Author").findAll()>
  124. <cftransaction action="rollback" />
  125. </cftransaction>
  126. <cfset assert('loc.allAuthors.recordcount eq 0')>
  127. </cffunction>
  128. <cffunction name="test_soft_delete_all">
  129. <cftransaction action="begin">
  130. <cfset model("Post").deleteAll()>
  131. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  132. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  133. <cftransaction action="rollback" />
  134. </cftransaction>
  135. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 0 AND loc.postsWithSoftDeletes.recordcount eq 4')>
  136. </cffunction>
  137. <cffunction name="test_permanent_delete_all">
  138. <cftransaction action="begin">
  139. <cfset model("Post").deleteAll(softDelete=false)>
  140. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  141. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  142. <cftransaction action="rollback" />
  143. </cftransaction>
  144. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 0 AND loc.postsWithSoftDeletes.recordcount eq 0')>
  145. </cffunction>
  146. <cffunction name="test_permanent_delete_all_of_soft_deleted_records">
  147. <cftransaction action="begin">
  148. <cfset model("Post").deleteAll()>
  149. <cfset model("Post").deleteAll(includeSoftDeletes=true, softDelete=false)>
  150. <cfset loc.postsWithoutSoftDeletes = model("Post").findAll()>
  151. <cfset loc.postsWithSoftDeletes = model("Post").findAll(includeSoftDeletes=true)>
  152. <cftransaction action="rollback" />
  153. </cftransaction>
  154. <cfset assert('loc.postsWithoutSoftDeletes.recordcount eq 0 AND loc.postsWithSoftDeletes.recordcount eq 0')>
  155. </cffunction>
  156. </cfcomponent>