PageRenderTime 58ms CodeModel.GetById 39ms RepoModel.GetById 0ms app.codeStats 0ms

/wheels/tests/model/associations/hasOne.cfc

http://cfwheels.googlecode.com/
ColdFusion CFScript | 100 lines | 91 code | 9 blank | 0 comment | 0 complexity | b39ab9f2f4295701606ae1af41769403 MD5 | raw file
Possible License(s): Apache-2.0, CPL-1.0
  1. <cfcomponent extends="wheelsMapping.Test">
  2. <cffunction name="test_getting_child">
  3. <cfset loc.author = model("author").findOne(order="id")>
  4. <cfset loc.dynamicResult = loc.author.profile()>
  5. <cfset loc.coreResult = model("profile").findOne(where="authorId=#loc.author.id#")>
  6. <cfset assert("loc.dynamicResult.bio IS loc.coreResult.bio")>
  7. </cffunction>
  8. <cffunction name="test_checking_if_child_exist">
  9. <cfset loc.author = model("author").findOne(order="id")>
  10. <cfset loc.dynamicResult = loc.author.hasProfile()>
  11. <cfset loc.coreResult = model("profile").exists(where="authorId=#loc.author.id#")>
  12. <cfset assert("loc.dynamicResult IS loc.coreResult")>
  13. </cffunction>
  14. <cffunction name="test_adding_child_by_setting_foreign_key">
  15. <cfset loc.author = model("author").findOne(order="id DESC")>
  16. <cfset loc.profile = model("profile").findOne(order="id")>
  17. <cftransaction>
  18. <cfset loc.author.setProfile(profile=loc.profile, transaction="none")>
  19. <cfset loc.profile.reload()>
  20. <cftransaction action="rollback" />
  21. </cftransaction>
  22. <cfset assert("loc.author.id IS loc.profile.authorId")>
  23. <cfset loc.profile.reload()>
  24. <cftransaction>
  25. <cfset loc.author.setProfile(key=loc.profile.id, transaction="none")>
  26. <cfset loc.profile.reload()>
  27. <cftransaction action="rollback" />
  28. </cftransaction>
  29. <cfset assert("loc.author.id IS loc.profile.authorId")>
  30. <cfset loc.profile.reload()>
  31. <cftransaction>
  32. <cfset model("profile").updateByKey(key=loc.profile.id, authorId=loc.author.id, transaction="none")>
  33. <cfset loc.profile.reload()>
  34. <cftransaction action="rollback" />
  35. </cftransaction>
  36. <cfset assert("loc.author.id IS loc.profile.authorId")>
  37. </cffunction>
  38. <cffunction name="test_removing_child_by_nullifying_foreign_key">
  39. <cfset loc.author = model("author").findOne(order="id")>
  40. <cftransaction>
  41. <cfset loc.author.removeProfile(transaction="none")>
  42. <cfset assert("model('profile').findOne().authorId IS ''")>
  43. <cftransaction action="rollback" />
  44. </cftransaction>
  45. <cftransaction>
  46. <cfset model("profile").updateOne(authorId="", where="authorId=#loc.author.id#", transaction="none")>
  47. <cfset assert("model('profile').findOne().authorId IS ''")>
  48. <cftransaction action="rollback" />
  49. </cftransaction>
  50. </cffunction>
  51. <cffunction name="test_deleting_child">
  52. <cfset loc.author = model("author").findOne(order="id")>
  53. <cfset loc.profileCount = model("profile").count() />
  54. <cftransaction>
  55. <cfset loc.author.deleteProfile(transaction="none")>
  56. <cfset assert("model('profile').count() eq (loc.profileCount - 1)")>
  57. <cftransaction action="rollback" />
  58. </cftransaction>
  59. <cftransaction>
  60. <cfset model("profile").deleteOne(where="authorId=#loc.author.id#", transaction="none")>
  61. <cfset assert("model('profile').count() eq (loc.profileCount - 1)")>
  62. <cftransaction action="rollback" />
  63. </cftransaction>
  64. </cffunction>
  65. <cffunction name="test_creating_new_child">
  66. <cfset loc.author = model("author").findOne(order="id")>
  67. <cfset loc.newProfile = loc.author.newProfile(dateOfBirth="17/12/1981")>
  68. <cfset loc.dynamicResult = loc.newProfile.authorId>
  69. <cfset loc.newProfile = model("profile").new(authorId=loc.author.id, dateOfBirth="17/12/1981")>
  70. <cfset loc.coreResult = loc.newProfile.authorId>
  71. <cfset assert("loc.dynamicResult IS loc.coreResult")>
  72. </cffunction>
  73. <cffunction name="test_creating_new_child_and_saving_it">
  74. <cfset loc.author = model("author").findOne(order="id")>
  75. <cftransaction>
  76. <cfset loc.newProfile = loc.author.createProfile(dateOfBirth="17/12/1981", transaction="none")>
  77. <cfset loc.dynamicResult = loc.newProfile.authorId>
  78. <cftransaction action="rollback" />
  79. </cftransaction>
  80. <cftransaction>
  81. <cfset loc.newProfile = model("profile").create(authorId=loc.author.id, dateOfBirth="17/12/1981", transaction="none")>
  82. <cfset loc.coreResult = loc.newProfile.authorId>
  83. <cftransaction action="rollback" />
  84. </cftransaction>
  85. <cfset assert("loc.dynamicResult IS loc.coreResult")>
  86. </cffunction>
  87. <cffunction name="test_getting_child_with_join_key">
  88. <cfset loc.obj = model("user").findOne(order="id", include="author")>
  89. <cfset assert('loc.obj.firstName eq loc.obj.author.firstName')>
  90. </cffunction>
  91. </cfcomponent>