/test/integration/api/groups_test.rb

https://github.com/suhaspnehete/EngineY · Ruby · 116 lines · 79 code · 22 blank · 15 comment · 11 complexity · f9ee110ecd390b41079f8ed97da5bd3d MD5 · raw file

  1. require 'test_helper'
  2. # This class provides tests for the RESTful API of the Group object.
  3. class GroupsTest < ActionController::IntegrationTest
  4. # GET ALL GROUPS
  5. # /groups.json
  6. test "get all groups" do
  7. get "/groups.json", :api_key=>'testapikey'
  8. assert_response :success
  9. groups = JSON.parse(response.body)
  10. assert groups.size == 2
  11. check_group(groups[0])
  12. end
  13. # GET ONE GROUP
  14. # /groups/1.json
  15. test "get one group" do
  16. get "groups/1.json", :api_key=>'testapikey'
  17. assert_response :success
  18. group = JSON.parse(response.body)
  19. check_group(group)
  20. end
  21. # TRY TO CREATE A GROUP
  22. # /groups.xml
  23. def test_should_not_create_group_via_API_XML
  24. get "/logout"
  25. post "/groups.xml", :group => {:name=>'unit test group',
  26. :description=>'my desc',
  27. :featured=>false}
  28. assert_response 401
  29. end
  30. # CREATE A GROUP
  31. # /groups.xml
  32. def test_should_create_group_via_API_XML
  33. get "/logout"
  34. post "/groups.xml", :api_key=>'testapikey',
  35. :group => {:name=>'unit test group',
  36. :description=>'my desc',
  37. :featured=>false}
  38. assert_response :created
  39. end
  40. # CREATE A GROUP
  41. # /groups.json
  42. def test_should_create_group_via_API_JSON
  43. get "/logout"
  44. post "/groups.json", :api_key => 'testapikey',
  45. :group => {:name=>'unit test group',
  46. :description=>'my desc',
  47. :featured=>false }
  48. assert_response :created
  49. group = JSON.parse(response.body)
  50. check_new_group(group)
  51. end
  52. # TRY TO UPDATE A GROUP
  53. def test_should_update_group_via_API_XML
  54. get "/logout"
  55. put "/groups/1.xml", :group => { :name=>'renamed unit test group',
  56. :description=>'my new desc',
  57. :featured=>false }
  58. assert_response 401
  59. end
  60. # UPDATE A GROUP
  61. def test_should_update_group_via_API_XML
  62. get "/logout"
  63. put "/groups/1.xml", :api_key => 'testapikey',
  64. :group => { :name=>'renamed unit test group',
  65. :description=>'my new desc',
  66. :featured=>false }
  67. assert_response :success
  68. end
  69. # UPDATE A GROUP
  70. def test_should_update_group_via_API_JSON
  71. get "/logout"
  72. put "/groups/1.json", :api_key => 'testapikey',
  73. :group => { :name=>'renamed unit test group',
  74. :description=>'my new desc',
  75. :featured=>false }
  76. assert_response :success
  77. end
  78. private
  79. def check_group(group)
  80. assert group['name'] == 'Test Group 1', 'Incorrect name'
  81. assert group['private'] == false, 'Incorrect private'
  82. assert group['featured'] == false, 'Incorrect featured'
  83. assert group['creator_id'] == 1, 'Incorrect creator_id'
  84. assert group['description'] == 'group description', 'Incorrect description'
  85. end
  86. def check_new_group(group)
  87. assert group['name'] == 'unit test group', 'Incorrect name'
  88. assert group['private'] == false, 'Incorrect private'
  89. assert group['featured'] == false, 'Incorrect featured'
  90. assert group['creator_id'] == 1, 'Incorrect creator_id'
  91. assert group['description'] == 'my desc', 'Incorrect description'
  92. end
  93. #
  94. end