datacentred 0.1.1pre → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|