datacentred 0.1.1pre → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.codeclimate.yml +11 -0
- data/.coveralls.yml +1 -0
- data/.gitignore +9 -0
- data/.rubocop.yml +2 -0
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +46 -0
- data/Gemfile.lock +39 -2
- data/LICENSE +21 -0
- data/README.md +160 -2
- data/circle.yml +0 -2
- data/datacentred.gemspec +17 -14
- data/docs/Datacentred.html +537 -0
- data/docs/Datacentred/Errors.html +260 -0
- data/docs/Datacentred/Errors/Error.html +139 -0
- data/docs/Datacentred/Errors/NotFound.html +145 -0
- data/docs/Datacentred/Errors/Unauthorized.html +149 -0
- data/docs/Datacentred/Errors/UnprocessableEntity.html +145 -0
- data/docs/Datacentred/Model.html +128 -0
- data/docs/Datacentred/Model/Base.html +255 -0
- data/docs/Datacentred/Model/Project.html +1729 -0
- data/docs/Datacentred/Model/Role.html +1830 -0
- data/docs/Datacentred/Model/Usage.html +510 -0
- data/docs/Datacentred/Model/User.html +832 -0
- data/docs/Datacentred/Model/Version.html +451 -0
- data/docs/Datacentred/Project.html +142 -0
- data/docs/Datacentred/Request.html +128 -0
- data/docs/Datacentred/Request/Base.html +675 -0
- data/docs/Datacentred/Request/Projects.html +1286 -0
- data/docs/Datacentred/Request/Roles.html +1286 -0
- data/docs/Datacentred/Request/Usage.html +315 -0
- data/docs/Datacentred/Request/Users.html +841 -0
- data/docs/Datacentred/Request/Versions.html +258 -0
- data/docs/Datacentred/Response.html +410 -0
- data/docs/Datacentred/Role.html +142 -0
- data/docs/Datacentred/Usage.html +142 -0
- data/docs/Datacentred/User.html +142 -0
- data/docs/Datacentred/Version.html +142 -0
- data/docs/_index.html +349 -0
- data/docs/class_list.html +51 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +492 -0
- data/docs/file.README.html +231 -0
- data/docs/file_list.html +56 -0
- data/docs/frames.html +17 -0
- data/docs/index.html +231 -0
- data/docs/js/app.js +248 -0
- data/docs/js/full_list.js +216 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +643 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/datacentred.rb +65 -12
- data/lib/datacentred/error.rb +37 -15
- data/lib/datacentred/model/base.rb +21 -0
- data/lib/datacentred/model/project.rb +90 -31
- data/lib/datacentred/model/role.rb +89 -31
- data/lib/datacentred/model/usage.rb +16 -9
- data/lib/datacentred/model/user.rb +54 -22
- data/lib/datacentred/model/version.rb +17 -8
- data/lib/datacentred/request/base.rb +68 -31
- data/lib/datacentred/request/projects.rb +92 -24
- data/lib/datacentred/request/roles.rb +92 -24
- data/lib/datacentred/request/usage.rb +10 -1
- data/lib/datacentred/request/users.rb +58 -15
- data/lib/datacentred/request/versions.rb +13 -1
- data/lib/datacentred/response.rb +6 -2
- data/test/integration/authorization_test.rb +30 -0
- data/test/integration/projects_test.rb +11 -11
- data/test/integration/roles_test.rb +17 -17
- data/test/integration/usage_test.rb +8 -8
- data/test/integration/users_test.rb +23 -19
- data/test/integration/versions_test.rb +1 -2
- data/test/test_helper.rb +8 -5
- data/test/vcr_cassettes/not_authorized.yml +57 -0
- data/test/vcr_cassettes/unexpected_error.yml +56 -0
- metadata +115 -9
@@ -1,7 +1,16 @@
|
|
1
1
|
module Datacentred
|
2
2
|
module Request
|
3
|
+
# RESTful API requests for the usage endpoints.
|
3
4
|
class Usage < Base
|
4
|
-
|
5
|
+
# Retrieve account usage data for a given year/month.
|
6
|
+
#
|
7
|
+
# GET /api/usage/2017/9
|
8
|
+
#
|
9
|
+
# @param [Integer] year The year.
|
10
|
+
# @param [Integer] month The month.
|
11
|
+
# @raise [Errors::NotFound] Raised if no usage data found for given year/month pair.
|
12
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
13
|
+
# @return [Hash] Usage for given year/month pair.
|
5
14
|
def self.show(year, month)
|
6
15
|
get("usage/#{year}/#{month}")
|
7
16
|
end
|
@@ -1,25 +1,68 @@
|
|
1
1
|
module Datacentred
|
2
2
|
module Request
|
3
|
+
# RESTful API requests for the user endpoints.
|
3
4
|
class Users < Base
|
5
|
+
class << self
|
6
|
+
# Create a new user.
|
7
|
+
#
|
8
|
+
# POST /api/users
|
9
|
+
#
|
10
|
+
# @param [Hash] params User attributes.
|
11
|
+
# @raise [Errors::UnprocessableEntity] Raised if validations fail for the supplied attributes.
|
12
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
13
|
+
# @return [Hash] New user.
|
14
|
+
def create(params)
|
15
|
+
post('users', 'user' => params)['user']
|
16
|
+
end
|
4
17
|
|
5
|
-
|
6
|
-
|
7
|
-
|
18
|
+
# List all available users.
|
19
|
+
#
|
20
|
+
# GET /api/users
|
21
|
+
#
|
22
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
23
|
+
# @return [[Hash]] A collection of all users on this account.
|
24
|
+
def list
|
25
|
+
get('users')['users']
|
26
|
+
end
|
8
27
|
|
9
|
-
|
10
|
-
|
11
|
-
|
28
|
+
# Find a user by unique ID.
|
29
|
+
#
|
30
|
+
# GET /api/users/82fa8de8f09102cc
|
31
|
+
#
|
32
|
+
# @param [String] id The unique identifier for this user.
|
33
|
+
# @raise [Errors::NotFound] Raised if the user couldn't be found.
|
34
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
35
|
+
# @return [Hash] The user, if it exists.
|
36
|
+
def show(id)
|
37
|
+
get("users/#{id}")['user']
|
38
|
+
end
|
12
39
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
40
|
+
# Update a user by unique ID.
|
41
|
+
#
|
42
|
+
# PUT /api/users/82fa8de8f09102cc
|
43
|
+
#
|
44
|
+
# @param [String] id The unique identifier for this user.
|
45
|
+
# @param [Hash] params User attributes.
|
46
|
+
# @raise [Errors::UnprocessableEntity] Raised if validations fail for the supplied attributes.
|
47
|
+
# @raise [Errors::NotFound] Raised if the user couldn't be found.
|
48
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
49
|
+
# @return [Hash] The updated user.
|
50
|
+
def update(id, params)
|
51
|
+
put("users/#{id}", 'user' => params)['user']
|
52
|
+
end
|
20
53
|
|
21
|
-
|
22
|
-
|
54
|
+
# Permanently remove the specified user.
|
55
|
+
#
|
56
|
+
# DELETE /api/users/82fa8de8f09102cc
|
57
|
+
#
|
58
|
+
# @param [String] id The unique identifier for this user.
|
59
|
+
# @raise [Errors::NotFound] Raised if the user couldn't be found.
|
60
|
+
# @raise [Errors::UnprocessableEntity] Raised if validations fail for the specified user.
|
61
|
+
# @raise [Errors::Unauthorized] Raised if credentials aren't valid.
|
62
|
+
# @return [nil] Confirms the user was destroyed.
|
63
|
+
def destroy(id)
|
64
|
+
delete("users/#{id}")
|
65
|
+
end
|
23
66
|
end
|
24
67
|
end
|
25
68
|
end
|
@@ -1,7 +1,19 @@
|
|
1
1
|
module Datacentred
|
2
2
|
module Request
|
3
|
+
# RESTful API requests for the versions endpoint.
|
4
|
+
#
|
5
|
+
# This model does not require authentication.
|
6
|
+
#
|
7
|
+
# An API version may be:
|
8
|
+
# * *CURRENT* - The latest supported version.
|
9
|
+
# * *SUPPORTED* - A supported older version.
|
10
|
+
# * *DEPRECATED* - Currently supported but soon to be retired.
|
3
11
|
class Versions < Base
|
4
|
-
|
12
|
+
# List all available API versions
|
13
|
+
#
|
14
|
+
# GET /api
|
15
|
+
#
|
16
|
+
# @return [[Hash]] Currently available versions of the API.
|
5
17
|
def self.list
|
6
18
|
get("/api")['versions']
|
7
19
|
end
|
data/lib/datacentred/response.rb
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
module Datacentred
|
2
|
+
# A response from the API server.
|
2
3
|
class Response
|
3
|
-
|
4
4
|
attr_reader :body, :status
|
5
5
|
|
6
|
+
# A response from the API server, initialized with A Faraday HTTP Response.
|
7
|
+
#
|
8
|
+
# @param [Faraday::Response] server_response A response object returned from Faraday.
|
9
|
+
# @raise [Errors::Error] Raised if response isn't a 2xx status code.
|
6
10
|
def initialize(server_response)
|
7
11
|
@body = JSON.parse server_response.body rescue nil
|
8
12
|
@status = server_response.status
|
9
|
-
|
13
|
+
Errors.raise_unless_successful(status, @body)
|
10
14
|
end
|
11
15
|
end
|
12
16
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module Datacentred
|
4
|
+
class AuthorizationIntegrationTest < Minitest::Test
|
5
|
+
def test_account_not_authorized
|
6
|
+
VCR.use_cassette "not_authorized" do
|
7
|
+
assert_raises Errors::Unauthorized do
|
8
|
+
Datacentred::Project.all
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_manually_setting_credentials
|
14
|
+
Datacentred.access_key = "foo"
|
15
|
+
assert_equal "foo", Datacentred.access_key
|
16
|
+
Datacentred.secret_key = "bar"
|
17
|
+
assert_equal "bar", Datacentred.secret_key
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_catch_all_error
|
21
|
+
# VCR edited to return HTTP 418
|
22
|
+
VCR.use_cassette "unexpected_error" do
|
23
|
+
error = assert_raises Datacentred::Errors::Error do
|
24
|
+
Datacentred::Project.all
|
25
|
+
end
|
26
|
+
assert_equal "Error 418: Im a teapot.", error.message
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -3,8 +3,8 @@ require_relative '../test_helper'
|
|
3
3
|
module Datacentred
|
4
4
|
class ProjectsIntegrationTest < Minitest::Test
|
5
5
|
def setup
|
6
|
-
@params_with_new_name = {
|
7
|
-
@create_params = {
|
6
|
+
@params_with_new_name = {name: "new_project_name"}
|
7
|
+
@create_params = {name: "test_new_project"}
|
8
8
|
@user_id = "user_id"
|
9
9
|
@project_id = 'project_id1'
|
10
10
|
@project_id2 = 'project_id2'
|
@@ -28,7 +28,7 @@ module Datacentred
|
|
28
28
|
|
29
29
|
def test_raises_not_found_if_project_doesnt_exist
|
30
30
|
VCR.use_cassette('project_not_found') do
|
31
|
-
assert_raises(Datacentred::
|
31
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
32
32
|
@project = Datacentred::Project.find("unknown")
|
33
33
|
end
|
34
34
|
end
|
@@ -43,7 +43,7 @@ module Datacentred
|
|
43
43
|
|
44
44
|
def test_raises_unprocessable_entity_if_failed_validation_for_create
|
45
45
|
VCR.use_cassette('project_create_failed_validation') do
|
46
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
46
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
47
47
|
Datacentred::Project.create(@create_params)
|
48
48
|
end
|
49
49
|
end
|
@@ -58,8 +58,8 @@ module Datacentred
|
|
58
58
|
|
59
59
|
def test_raises_unprocessable_entity_if_failed_validation_for_update
|
60
60
|
VCR.use_cassette('project_update_failed_validation') do
|
61
|
-
@params_with_used_name = {
|
62
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
61
|
+
@params_with_used_name = {name: "foo"}
|
62
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
63
63
|
@project = Datacentred::Project.update(@project_id2, @params_with_used_name)
|
64
64
|
end
|
65
65
|
end
|
@@ -67,7 +67,7 @@ module Datacentred
|
|
67
67
|
|
68
68
|
def test_raises_not_found_if_cant_find_project_for_update
|
69
69
|
VCR.use_cassette('project_update_not_found') do
|
70
|
-
assert_raises(Datacentred::
|
70
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
71
71
|
@project = Datacentred::Project.update("unknown", @params_with_new_name)
|
72
72
|
end
|
73
73
|
end
|
@@ -75,8 +75,8 @@ module Datacentred
|
|
75
75
|
|
76
76
|
def test_delete_project
|
77
77
|
VCR.use_cassette('delete_project') do
|
78
|
-
Datacentred::Project.
|
79
|
-
assert_raises(Datacentred::
|
78
|
+
Datacentred::Project.destroy(@project_id2)
|
79
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
80
80
|
@project = Datacentred::Project.find(@project_id2)
|
81
81
|
end
|
82
82
|
end
|
@@ -98,7 +98,7 @@ module Datacentred
|
|
98
98
|
VCR.use_cassette('add_user_to_project') do
|
99
99
|
@user_list = Datacentred::Project.users(@project_id)
|
100
100
|
assert_equal @user_list.count, 1
|
101
|
-
Datacentred::Project.add_user
|
101
|
+
assert Datacentred::Project.add_user project_id: @project_id, user_id: @user_id
|
102
102
|
@user_list = Datacentred::Project.users(@project_id)
|
103
103
|
assert_equal @user_list.count, 2
|
104
104
|
end
|
@@ -108,7 +108,7 @@ module Datacentred
|
|
108
108
|
VCR.use_cassette('remove_user_from_project') do
|
109
109
|
@user_list = Datacentred::Project.users(@project_id)
|
110
110
|
assert_equal @user_list.count, 2
|
111
|
-
Datacentred::Project.remove_user
|
111
|
+
assert Datacentred::Project.remove_user project_id: @project_id, user_id: @user_id
|
112
112
|
@user_list = Datacentred::Project.users(@project_id)
|
113
113
|
assert_equal @user_list.count, 1
|
114
114
|
end
|
@@ -3,14 +3,14 @@ require_relative '../test_helper'
|
|
3
3
|
module Datacentred
|
4
4
|
class RolesIntegrationTest < Minitest::Test
|
5
5
|
def setup
|
6
|
-
@create_params1 = {
|
7
|
-
@create_params2 = {
|
8
|
-
|
9
|
-
@new_permissions = {
|
10
|
-
'roles.modify', 'roles.read']}
|
11
|
-
@invalid_permissions = {
|
12
|
-
|
13
|
-
@update_params = {
|
6
|
+
@create_params1 = {name: "New Role"}
|
7
|
+
@create_params2 = {name: "Historical Figures",
|
8
|
+
permissions: ["usage.read","tickets.modify"]}
|
9
|
+
@new_permissions = {permissions: ['usage.read',
|
10
|
+
'roles.modify', 'roles.read']}
|
11
|
+
@invalid_permissions = {name: "Genghis Khan",
|
12
|
+
permissions: ["fighting"]}
|
13
|
+
@update_params = {name: "Administrator 2"}
|
14
14
|
@user_id = "06eacbafda355a927f50f304db3af132"
|
15
15
|
end
|
16
16
|
|
@@ -49,7 +49,7 @@ module Datacentred
|
|
49
49
|
|
50
50
|
def test_create_role_with_invalid_permissions
|
51
51
|
VCR.use_cassette('create_role_with_invalid_permissions') do
|
52
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
52
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
53
53
|
@role = Datacentred::Role.create(@invalid_permissions)
|
54
54
|
end
|
55
55
|
end
|
@@ -67,7 +67,7 @@ module Datacentred
|
|
67
67
|
def test_update_role_with_invalid_permissions
|
68
68
|
VCR.use_cassette('update_role_with_invalid_permissions') do
|
69
69
|
@role = Datacentred::Role.create(@create_params1)
|
70
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
70
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
71
71
|
Datacentred::Role.update(@role.id, @invalid_permissions)
|
72
72
|
end
|
73
73
|
end
|
@@ -77,8 +77,8 @@ module Datacentred
|
|
77
77
|
VCR.use_cassette('delete_role') do
|
78
78
|
@role = Datacentred::Role.create(@create_params1)
|
79
79
|
assert Datacentred::Role.find(@role.id)
|
80
|
-
Datacentred::Role.
|
81
|
-
assert_raises(Datacentred::
|
80
|
+
Datacentred::Role.destroy(@role.id)
|
81
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
82
82
|
@role = Datacentred::Role.find(@role.id)
|
83
83
|
end
|
84
84
|
end
|
@@ -97,7 +97,7 @@ module Datacentred
|
|
97
97
|
@role = Datacentred::Role.create(@create_params1)
|
98
98
|
@user_list = Datacentred::Role.users(@role.id)
|
99
99
|
assert_equal @user_list.count, 0
|
100
|
-
Datacentred::Role.add_user
|
100
|
+
assert Datacentred::Role.add_user role_id: @role.id, user_id: @user_id
|
101
101
|
@new_users_list = Datacentred::Role.users(@role.id)
|
102
102
|
assert_equal @new_users_list.count, 1
|
103
103
|
assert_equal @new_users_list.first.id, @user_id
|
@@ -107,10 +107,10 @@ module Datacentred
|
|
107
107
|
def test_remove_user_from_role
|
108
108
|
VCR.use_cassette('remove_user_from_role') do
|
109
109
|
@role = Datacentred::Role.create(@create_params1)
|
110
|
-
Datacentred::Role.add_user
|
110
|
+
assert Datacentred::Role.add_user role_id: @role.id, user_id: @user_id
|
111
111
|
@user_list = Datacentred::Role.users(@role.id)
|
112
112
|
assert_equal @user_list.count, 1
|
113
|
-
Datacentred::Role.remove_user
|
113
|
+
assert Datacentred::Role.remove_user role_id: @role.id, user_id: @user_id
|
114
114
|
@new_user_list = Datacentred::Role.users(@role.id)
|
115
115
|
assert_equal @new_user_list.count, 0
|
116
116
|
end
|
@@ -119,8 +119,8 @@ module Datacentred
|
|
119
119
|
def test_remove_user_from_role_not_found
|
120
120
|
VCR.use_cassette('remove_user_from_role_not_found') do
|
121
121
|
@role = Datacentred::Role.create(@create_params1)
|
122
|
-
assert_raises(Datacentred::
|
123
|
-
Datacentred::Role.remove_user
|
122
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
123
|
+
Datacentred::Role.remove_user role_id: @role.id, user_id: "unknown"
|
124
124
|
end
|
125
125
|
end
|
126
126
|
end
|
@@ -2,21 +2,21 @@ require_relative '../test_helper'
|
|
2
2
|
|
3
3
|
module Datacentred
|
4
4
|
class UsageIntegrationTest < Minitest::Test
|
5
|
-
|
6
5
|
def test_show_usage
|
7
6
|
VCR.use_cassette('show_usage') do
|
8
|
-
@usage = Datacentred::Usage.
|
9
|
-
assert @usage.is_a?
|
10
|
-
assert @usage.
|
11
|
-
assert @usage.first.
|
12
|
-
assert @usage.first.
|
7
|
+
@usage = Datacentred::Usage.find(2017, 07)
|
8
|
+
assert @usage.last_updated_at.is_a? Time
|
9
|
+
assert @usage.projects.is_a? Array
|
10
|
+
assert @usage.projects.first.name.is_a? String
|
11
|
+
assert @usage.projects.first.id.is_a? String
|
12
|
+
assert_equal 0, @usage.projects.first.usage.ips.usage.first.value
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_raises_not_found_if_no_data
|
17
17
|
VCR.use_cassette('usage_not_found') do
|
18
|
-
assert_raises(Datacentred::
|
19
|
-
@usage = Datacentred::Usage.
|
18
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
19
|
+
@usage = Datacentred::Usage.find(2010, 07)
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -2,17 +2,21 @@ require_relative '../test_helper'
|
|
2
2
|
|
3
3
|
module Datacentred
|
4
4
|
class UsersIntegrationTest < Minitest::Test
|
5
|
-
|
6
5
|
def setup
|
7
|
-
|
8
|
-
@
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
6
|
+
@create_params_without_pass = {email: "death@afterlife2.com"}
|
7
|
+
@create_params = {
|
8
|
+
email: "death@afterlife.com",
|
9
|
+
password: "melvin11",
|
10
|
+
first_name: "Foo",
|
11
|
+
last_name: "Bar"
|
12
|
+
}
|
13
|
+
@create_params2 = {
|
14
|
+
email: "death2@afterlife2.com",
|
15
|
+
password: "melvin22"
|
16
|
+
}
|
13
17
|
@user_id = "bda96ae2c89347d5a059d663c153ec2a"
|
14
|
-
@update_params = {
|
15
|
-
@short_password = {
|
18
|
+
@update_params = {first_name: "Foo2"}
|
19
|
+
@short_password = {password: "tiny"}
|
16
20
|
end
|
17
21
|
|
18
22
|
def test_user_object_properties
|
@@ -50,7 +54,7 @@ module Datacentred
|
|
50
54
|
|
51
55
|
def test_raises_not_found_if_cant_find_user
|
52
56
|
VCR.use_cassette('user_show_not_found') do
|
53
|
-
assert_raises(Datacentred::
|
57
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
54
58
|
@user = Datacentred::User.find("unknown")
|
55
59
|
end
|
56
60
|
end
|
@@ -68,7 +72,7 @@ module Datacentred
|
|
68
72
|
|
69
73
|
def test_raises_unprocessable_entity_if_failed_validation_for_create
|
70
74
|
VCR.use_cassette('user_create_failed_validation') do
|
71
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
75
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
72
76
|
@user = Datacentred::User.create(@create_params_without_pass)
|
73
77
|
end
|
74
78
|
end
|
@@ -85,7 +89,7 @@ module Datacentred
|
|
85
89
|
def test_raises_unprocessable_entity_if_failed_validation_for_update
|
86
90
|
VCR.use_cassette('user_update_failed_validation') do
|
87
91
|
@user = Datacentred::User.create(@create_params)
|
88
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
92
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
89
93
|
@user = Datacentred::User.update(@user.id, @short_password)
|
90
94
|
end
|
91
95
|
end
|
@@ -93,7 +97,7 @@ module Datacentred
|
|
93
97
|
|
94
98
|
def test_raises_not_found_if_user_doesnt_exist
|
95
99
|
VCR.use_cassette('user_update_not_found') do
|
96
|
-
assert_raises(Datacentred::
|
100
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
97
101
|
@user = Datacentred::User.update("unknown", @update_params)
|
98
102
|
end
|
99
103
|
end
|
@@ -102,8 +106,8 @@ module Datacentred
|
|
102
106
|
def test_delete_user
|
103
107
|
VCR.use_cassette('delete_user') do
|
104
108
|
@user = Datacentred::User.create(@create_params)
|
105
|
-
Datacentred::User.
|
106
|
-
assert_raises(Datacentred::
|
109
|
+
Datacentred::User.destroy(@user.id)
|
110
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
107
111
|
@user = Datacentred::User.find(@user.id)
|
108
112
|
end
|
109
113
|
end
|
@@ -111,16 +115,16 @@ module Datacentred
|
|
111
115
|
|
112
116
|
def test_raises_unprocessable_entity_if_failed_validation_for_delete
|
113
117
|
VCR.use_cassette('user_delete_failed_validation') do
|
114
|
-
assert_raises(Datacentred::UnprocessableEntity) do
|
115
|
-
@user = Datacentred::User.
|
118
|
+
assert_raises(Datacentred::Errors::UnprocessableEntity) do
|
119
|
+
@user = Datacentred::User.destroy("my_user_id")
|
116
120
|
end
|
117
121
|
end
|
118
122
|
end
|
119
123
|
|
120
124
|
def test_user_cant_be_deleted_if_not_found
|
121
125
|
VCR.use_cassette('user_delete_not_found') do
|
122
|
-
assert_raises(Datacentred::
|
123
|
-
@user = Datacentred::User.
|
126
|
+
assert_raises(Datacentred::Errors::NotFound) do
|
127
|
+
@user = Datacentred::User.destroy("unknown")
|
124
128
|
end
|
125
129
|
end
|
126
130
|
end
|