/wheels/tests/model/crud/pagination.cfc

http://cfwheels.googlecode.com/ · ColdFusion CFScript · 118 lines · 101 code · 17 blank · 0 comment · 0 complexity · 759724a2eafac1ec58539cc5244d1aa5 MD5 · raw file

  1. <cfcomponent extends="wheelsMapping.Test">
  2. <cffunction name="setup">
  3. <cfset loc.user = model("user")>
  4. <cfset loc.photo = model("photo")>
  5. <cfset loc.gallery = model("gallery")>
  6. </cffunction>
  7. <cffunction name="test_exist_early_if_no_records_match_where_clause">
  8. <cfset loc.e = loc.user.findAll(where="firstname = 'somemoron'", perpage="2", page="1", handle="pagination_test_1", order="id")>
  9. <cfset assert('request.wheels.pagination_test_1.CURRENTPAGE eq 1')>
  10. <cfset assert('request.wheels.pagination_test_1.TOTALPAGES eq 0')>
  11. <cfset assert('request.wheels.pagination_test_1.TOTALRECORDS eq 0')>
  12. <cfset assert("loc.e.recordcount eq 0")>
  13. </cffunction>
  14. <cffunction name="test_5_records_2_perpage_3_pages">
  15. <cfset loc.r = loc.user.findAll(select="id", order="id")>
  16. <!--- 1st page --->
  17. <cfset loc.e = loc.user.findAll(select="id", perpage="2", page="1", handle="pagination_test_2", order="id")>
  18. <cfset assert('request.wheels.pagination_test_2.CURRENTPAGE eq 1')>
  19. <cfset assert('request.wheels.pagination_test_2.TOTALPAGES eq 3')>
  20. <cfset assert('request.wheels.pagination_test_2.TOTALRECORDS eq 5')>
  21. <cfset assert("loc.e.recordcount eq 2")>
  22. <cfset assert('loc.e.id[1] eq loc.r.id[1]')>
  23. <cfset assert('loc.e.id[2] eq loc.r.id[2]')>
  24. <!--- 2nd page --->
  25. <cfset loc.e = loc.user.findAll(perpage="2", page="2", handle="pagination_test_3", order="id")>
  26. <cfset assert('request.wheels.pagination_test_3.CURRENTPAGE eq 2')>
  27. <cfset assert('request.wheels.pagination_test_3.TOTALPAGES eq 3')>
  28. <cfset assert('request.wheels.pagination_test_3.TOTALRECORDS eq 5')>
  29. <cfset assert("loc.e.recordcount eq 2")>
  30. <cfset assert('loc.e.id[1] eq loc.r.id[3]')>
  31. <cfset assert('loc.e.id[2] eq loc.r.id[4]')>
  32. <!--- 3rd page --->
  33. <cfset loc.e = loc.user.findAll(perpage="2", page="3", handle="pagination_test_4", order="id")>
  34. <cfset assert('request.wheels.pagination_test_4.CURRENTPAGE eq 3')>
  35. <cfset assert('request.wheels.pagination_test_4.TOTALPAGES eq 3')>
  36. <cfset assert('request.wheels.pagination_test_4.TOTALRECORDS eq 5')>
  37. <cfset assert("loc.e.recordcount eq 1")>
  38. <cfset assert('loc.e.id[1] eq loc.r.id[5]')>
  39. </cffunction>
  40. <cffunction name="test_specify_where_on_joined_table">
  41. <cfset loc.q = loc.gallery.findOne(
  42. include="user"
  43. ,where="users.lastname = 'Petruzzi'"
  44. ,orderby="id"
  45. )>
  46. <!--- 10 records, 2 perpage, 5 pages --->
  47. <cfset loc.args = {
  48. perpage="2"
  49. ,page="1"
  50. ,handle="pagination_test"
  51. ,order="id"
  52. ,include="gallery"
  53. ,where="galleryid = #loc.q.id#"
  54. }>
  55. <cfset loc.args2 = duplicate(loc.args)>
  56. <cfset structdelete(loc.args2, "perpage", false)>
  57. <cfset structdelete(loc.args2, "page", false)>
  58. <cfset structdelete(loc.args2, "handle", false)>
  59. <cfset loc.r = loc.photo.findAll(argumentCollection=loc.args2)>
  60. <!--- page 1 --->
  61. <cfset loc.e = loc.photo.findAll(argumentCollection=loc.args)>
  62. <cfset assert('loc.e.galleryid[1] eq loc.r.galleryid[1]')>
  63. <cfset assert('loc.e.galleryid[2] eq loc.r.galleryid[2]')>
  64. <!--- page 3 --->
  65. <cfset loc.args.page = "3">
  66. <cfset loc.e = loc.photo.findAll(argumentCollection=loc.args)>
  67. <cfset assert('loc.e.galleryid[1] eq loc.r.galleryid[5]')>
  68. <cfset assert('loc.e.galleryid[2] eq loc.r.galleryid[6]')>
  69. <!--- page 5 --->
  70. <cfset loc.args.page = "5">
  71. <cfset loc.e = loc.photo.findAll(argumentCollection=loc.args)>
  72. <cfset assert('loc.e.galleryid[1] eq loc.r.galleryid[9]')>
  73. <cfset assert('loc.e.galleryid[2] eq loc.r.galleryid[10]')>
  74. </cffunction>
  75. <cffunction name="test_make_sure_that_remapped_columns_containing_desc_and_asc_work">
  76. <cfset loc.result = model("photo").findAll(page=1, perPage=20, order='DESCription1 DESC', handle="pagination_order_test_1")>
  77. <cfset assert('request.wheels.pagination_order_test_1.CURRENTPAGE eq 1')>
  78. <cfset assert('request.wheels.pagination_order_test_1.TOTALPAGES eq 13')>
  79. <cfset assert('request.wheels.pagination_order_test_1.TOTALRECORDS eq 250')>
  80. </cffunction>
  81. <cffunction name="test_with_renamed_primary_key">
  82. <cfset loc.photo = model("photo2").findAll(
  83. page=1
  84. ,perpage=3
  85. ,where="DESCRIPTION1 LIKE '%test%'"
  86. )>
  87. <cfset assert('loc.photo.recordcount eq 3')>
  88. </cffunction>
  89. <cffunction name="test_with_parameterize_set_to_false_with_string">
  90. <cfset loc.result = model("photo").findAll(page=1, perPage=20, handle="pagination_order_test_1", parameterize="false", where="description1 LIKE '%photo%'")>
  91. <cfset assert('request.wheels.pagination_order_test_1.CURRENTPAGE eq 1')>
  92. <cfset assert('request.wheels.pagination_order_test_1.TOTALPAGES eq 13')>
  93. <cfset assert('request.wheels.pagination_order_test_1.TOTALRECORDS eq 250')>
  94. </cffunction>
  95. <cffunction name="test_with_parameterize_set_to_false_with_numeric">
  96. <cfset loc.result = model("photo").findAll(page=1, perPage=20, handle="pagination_order_test_1", parameterize="false", where="id = 1")>
  97. <cfset assert('request.wheels.pagination_order_test_1.CURRENTPAGE eq 1')>
  98. <cfset assert('request.wheels.pagination_order_test_1.TOTALPAGES eq 1')>
  99. <cfset assert('request.wheels.pagination_order_test_1.TOTALRECORDS eq 1')>
  100. </cffunction>
  101. </cfcomponent>