moodle_rb 1.0.2 → 1.1.3

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.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +36 -0
  3. data/.github/workflows/publish.yml +27 -0
  4. data/Dockerfile +10 -0
  5. data/README.md +73 -1
  6. data/docker-compose.yml +6 -0
  7. data/lib/moodle_rb/categories.rb +12 -11
  8. data/lib/moodle_rb/client.rb +10 -8
  9. data/lib/moodle_rb/courses.rb +59 -13
  10. data/lib/moodle_rb/enrolments.rb +34 -9
  11. data/lib/moodle_rb/grades.rb +9 -14
  12. data/lib/moodle_rb/users.rb +35 -19
  13. data/lib/moodle_rb/utility.rb +7 -0
  14. data/lib/moodle_rb/version.rb +1 -1
  15. data/lib/moodle_rb.rb +2 -2
  16. data/moodle_rb.gemspec +2 -3
  17. data/spec/cassettes/MoodleRb_Categories/_create/.yml +19 -19
  18. data/spec/cassettes/MoodleRb_Categories/_create/when_validation_fails/.yml +19 -19
  19. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_invalid_token/.yml +39 -0
  20. data/spec/cassettes/MoodleRb_Categories/_destroy/when_using_valid_token/.yml +76 -0
  21. data/spec/cassettes/MoodleRb_Categories/_index/.yml +19 -19
  22. data/spec/cassettes/MoodleRb_Categories/_index/when_using_invalid_token/.yml +39 -0
  23. data/spec/cassettes/MoodleRb_Categories/_show/when_using_invalid_token/.yml +39 -0
  24. data/spec/cassettes/MoodleRb_Client/_site_info/when_invalid_token/.yml +20 -20
  25. data/spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml +19 -19
  26. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml +52 -0
  27. data/spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml +52 -0
  28. data/spec/cassettes/MoodleRb_Courses/_create/.yml +19 -19
  29. data/spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml +36 -36
  30. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml +39 -0
  31. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/.yml +75 -0
  32. data/spec/cassettes/MoodleRb_Courses/_destroy/when_using_valid_token/when_using_invalid_course_id/.yml +39 -0
  33. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_invalid_token/.yml +39 -0
  34. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/when_using_valid_token/.yml +75 -0
  35. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_invalid_token/.yml +52 -0
  36. data/spec/cassettes/MoodleRb_Courses/_grade_items/when_using_valid_token/.yml +56 -0
  37. data/spec/cassettes/MoodleRb_Courses/_index/.yml +19 -19
  38. data/spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml +39 -0
  39. data/spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml +52 -0
  40. data/spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml +51 -0
  41. data/spec/cassettes/MoodleRb_Courses/_show/.yml +19 -19
  42. data/spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml +39 -0
  43. data/spec/cassettes/MoodleRb_Enrolments/_create/.yml +19 -19
  44. data/spec/cassettes/MoodleRb_Enrolments/_create/when_user_or_course_id_is_invalid/.yml +19 -19
  45. data/spec/cassettes/MoodleRb_Enrolments/_destroy/.yml +51 -0
  46. data/spec/cassettes/MoodleRb_Enrolments/_destroy/when_user_or_course_id_is_invalid/.yml +52 -0
  47. data/spec/cassettes/MoodleRb_Grades/_by_assignment/.yml +19 -19
  48. data/spec/cassettes/MoodleRb_Grades/_by_course/.yml +19 -19
  49. data/spec/cassettes/MoodleRb_Grades/_by_course/when_invalid_parameters/.yml +19 -19
  50. data/spec/cassettes/MoodleRb_Users/_create/.yml +19 -19
  51. data/spec/cassettes/MoodleRb_Users/_create/when_missing_required_parameters/.yml +19 -19
  52. data/spec/cassettes/MoodleRb_Users/_destroy/.yml +19 -19
  53. data/spec/cassettes/MoodleRb_Users/_destroy/when_id_does_not_exist/.yml +19 -19
  54. data/spec/cassettes/MoodleRb_Users/_destroy/when_using_invalid_token/.yml +39 -0
  55. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/.yml +19 -19
  56. data/spec/cassettes/MoodleRb_Users/_enrolled_courses/when_using_invalid_token/.yml +39 -0
  57. data/spec/cassettes/MoodleRb_Users/_search/.yml +21 -21
  58. data/spec/cassettes/MoodleRb_Users/_search/when_using_invalid_token/.yml +39 -0
  59. data/spec/cassettes/MoodleRb_Users/_search_identity/.yml +51 -0
  60. data/spec/cassettes/MoodleRb_Users/_search_identity/when_using_invalid_token/.yml +52 -0
  61. data/spec/cassettes/MoodleRb_Users/_show/.yml +19 -19
  62. data/spec/cassettes/MoodleRb_Users/_show/when_using_invalid_token/.yml +39 -0
  63. data/spec/cassettes/MoodleRb_Users/_update/.yml +20 -20
  64. data/spec/cassettes/MoodleRb_Users/_update/when_using_invalid_token/.yml +39 -0
  65. data/spec/lib/moodle_rb/categories_spec.rb +42 -10
  66. data/spec/lib/moodle_rb/client_spec.rb +7 -5
  67. data/spec/lib/moodle_rb/courses_spec.rb +155 -20
  68. data/spec/lib/moodle_rb/enrolments_spec.rb +36 -3
  69. data/spec/lib/moodle_rb/grades_spec.rb +4 -4
  70. data/spec/lib/moodle_rb/users_spec.rb +93 -9
  71. data/spec/lib/moodle_rb_spec.rb +2 -2
  72. metadata +150 -142
  73. data/spec/cassettes/MoodleRb_Categories/_destroy/.yml +0 -75
  74. data/spec/cassettes/MoodleRb_Courses/_destroy/.yml +0 -75
  75. data/spec/cassettes/MoodleRb_Courses/_enrolled_users/.yml +0 -75
@@ -1,39 +1,39 @@
1
- ---
2
- http_interactions:
3
- - request:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
4
  method: post
5
- uri: http://localhost:8888/moodle29/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=87b95af2df709fa60b395b5c59a3fc2e
6
- body:
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=60fc9c9415259404795094957e4ab32f
6
+ body:
7
7
  string: users[0][email]=samg%40jobready.com.au&users[0][id]=4
8
8
  headers: {}
9
9
 
10
- response:
11
- status:
10
+ response:
11
+ status:
12
12
  code: 200
13
13
  message: OK
14
- headers:
15
- Expires:
14
+ headers:
15
+ Expires:
16
16
  - Thu, 01 Jan 1970 00:00:00 GMT
17
- X-Powered-By:
17
+ X-Powered-By:
18
18
  - PHP/5.6.2
19
- Content-Type:
19
+ Content-Type:
20
20
  - application/json
21
- Content-Length:
21
+ Content-Length:
22
22
  - "4"
23
- Date:
23
+ Date:
24
24
  - Wed, 08 Jun 2016 06:40:27 GMT
25
- Access-Control-Allow-Origin:
25
+ Access-Control-Allow-Origin:
26
26
  - "*"
27
- Accept-Ranges:
27
+ Accept-Ranges:
28
28
  - none
29
- Pragma:
29
+ Pragma:
30
30
  - no-cache
31
- Server:
31
+ Server:
32
32
  - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
33
- Cache-Control:
33
+ Cache-Control:
34
34
  - private, must-revalidate, pre-check=0, post-check=0, max-age=0
35
- body:
35
+ body:
36
36
  string: "null"
37
- http_version:
37
+ http_version:
38
38
  recorded_at: Wed, 08 Jun 2016 06:40:27 GMT
39
39
  recorded_with: VCR 2.9.3
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_user_update_users&wstoken=
6
+ body:
7
+ string: users[0][email]=&users[0][id]=4
8
+ headers: {}
9
+
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ X-Powered-By:
16
+ - PHP/5.6.2
17
+ Accept-Ranges:
18
+ - none
19
+ Server:
20
+ - Apache/2.2.29 (Unix) mod_fastcgi/2.4.6 mod_wsgi/3.4 Python/2.7.8 PHP/5.6.2 mod_ssl/2.2.29 OpenSSL/0.9.8zg DAV/2 mod_perl/2.0.8 Perl/v5.20.0
21
+ Pragma:
22
+ - no-cache
23
+ Content-Type:
24
+ - application/json
25
+ Access-Control-Allow-Origin:
26
+ - "*"
27
+ Expires:
28
+ - Thu, 01 Jan 1970 00:00:00 GMT
29
+ Date:
30
+ - Mon, 20 Jun 2016 22:39:11 GMT
31
+ Cache-Control:
32
+ - private, must-revalidate, pre-check=0, post-check=0, max-age=0
33
+ Content-Length:
34
+ - "103"
35
+ body:
36
+ string: "{\"exception\":\"moodle_exception\",\"errorcode\":\"invalidtoken\",\"message\":\"Invalid token - token not found\"}"
37
+ http_version:
38
+ recorded_at: Mon, 20 Jun 2016 22:39:11 GMT
39
+ recorded_with: VCR 2.9.3
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Categories do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:category_moodle_rb) { MoodleRb.new(token, url).categories }
7
7
 
8
8
  describe '#index', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:body, :path], :record => :once
10
10
  } do
11
11
  let(:result) { category_moodle_rb.index }
12
12
 
@@ -14,10 +14,20 @@ describe MoodleRb::Categories do
14
14
  expect(result).to be_a Array
15
15
  expect(result.first).to have_key 'id'
16
16
  end
17
+
18
+ context 'when using invalid token' do
19
+ let(:token) { '' }
20
+ specify do
21
+ expect{ category_moodle_rb.index }.to raise_error(
22
+ MoodleRb::MoodleError,
23
+ 'Invalid token - token not found'
24
+ )
25
+ end
26
+ end
17
27
  end
18
28
 
19
29
  describe '#create', :vcr => {
20
- :match_requests_on => [:headers], :record => :once
30
+ :match_requests_on => [:path], :record => :once
21
31
  } do
22
32
  let(:params) do
23
33
  {
@@ -50,7 +60,7 @@ describe MoodleRb::Categories do
50
60
  end
51
61
 
52
62
  describe '#show', :vcr => {
53
- :match_requests_on => [:headers], :record => :once
63
+ :match_requests_on => [:path], :record => :once
54
64
  } do
55
65
  let(:id) { 1 }
56
66
  let(:result) { category_moodle_rb.show(id) }
@@ -59,16 +69,38 @@ describe MoodleRb::Categories do
59
69
  expect(result).to be_a Hash
60
70
  expect(result['id']).to eq 1
61
71
  end
72
+
73
+ context 'when using invalid token' do
74
+ let(:token) { '' }
75
+ specify do
76
+ expect{ category_moodle_rb.show(id) }.to raise_error(
77
+ MoodleRb::MoodleError,
78
+ 'Invalid token - token not found'
79
+ )
80
+ end
81
+ end
62
82
  end
63
83
 
64
84
  describe '#destroy', :vcr => {
65
- :match_requests_on => [:headers], :record => :once
85
+ :match_requests_on => [:path], :record => :once
66
86
  } do
67
- let!(:id) { category_moodle_rb.create(:name => '_')['id'] }
68
- let(:result) { category_moodle_rb.destroy(id) }
87
+ context 'when using valid token' do
88
+ let!(:id) { category_moodle_rb.create(:name => '_')['id'] }
89
+ let(:result) { category_moodle_rb.destroy(id) }
69
90
 
70
- specify do
71
- expect(result).to eq true
91
+ specify do
92
+ expect(result).to eq true
93
+ end
94
+ end
95
+
96
+ context 'when using invalid token' do
97
+ let(:token) { '' }
98
+ specify do
99
+ expect{ category_moodle_rb.destroy(0) }.to raise_error(
100
+ MoodleRb::MoodleError,
101
+ 'Invalid token - token not found'
102
+ )
103
+ end
72
104
  end
73
105
  end
74
106
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Client do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:moodle_rb) { MoodleRb.new(token, url) }
7
7
 
8
8
  describe '#site_info', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:body, :path], :record => :once
10
10
  } do
11
11
  let(:result) { moodle_rb.site_info }
12
12
 
@@ -14,8 +14,10 @@ describe MoodleRb::Client do
14
14
  let(:token) { 'invalid_moodle_rb_token' }
15
15
 
16
16
  specify do
17
- expect(result).to be_a Hash
18
- expect(result['errorcode']).to eq 'invalidtoken'
17
+ expect{ result }.to raise_error(
18
+ MoodleRb::MoodleError,
19
+ 'Invalid token - token not found'
20
+ )
19
21
  end
20
22
  end
21
23
 
@@ -1,8 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Courses do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:course_moodle_rb) { MoodleRb.new(token, url).courses }
7
7
  let(:params) do
8
8
  {
@@ -14,7 +14,7 @@ describe MoodleRb::Courses do
14
14
  end
15
15
 
16
16
  describe '#index', :vcr => {
17
- :match_requests_on => [:body, :headers], :record => :once
17
+ :match_requests_on => [:body, :path], :record => :once
18
18
  } do
19
19
  let(:result) { course_moodle_rb.index }
20
20
 
@@ -22,10 +22,20 @@ describe MoodleRb::Courses do
22
22
  expect(result).to be_a Array
23
23
  expect(result.first).to have_key 'id'
24
24
  end
25
+
26
+ context 'when using invalid token' do
27
+ let(:token) { '' }
28
+ specify do
29
+ expect{ course_moodle_rb.index }.to raise_error(
30
+ MoodleRb::MoodleError,
31
+ 'Invalid token - token not found'
32
+ )
33
+ end
34
+ end
25
35
  end
26
36
 
27
37
  describe '#create', :vcr => {
28
- :match_requests_on => [:headers], :record => :once
38
+ :match_requests_on => [:path], :record => :once
29
39
  } do
30
40
  let(:result) { course_moodle_rb.create(params) }
31
41
 
@@ -50,7 +60,7 @@ describe MoodleRb::Courses do
50
60
  end
51
61
 
52
62
  describe '#show', :vcr => {
53
- :match_requests_on => [:headers], :record => :once
63
+ :match_requests_on => [:path], :record => :once
54
64
  } do
55
65
  let(:id) { 1 }
56
66
  let(:result) { course_moodle_rb.show(id) }
@@ -59,34 +69,159 @@ describe MoodleRb::Courses do
59
69
  expect(result).to be_a Hash
60
70
  expect(result['id']).to eq 1
61
71
  end
72
+
73
+ context 'when using invalid token' do
74
+ let(:token) { '' }
75
+ specify do
76
+ expect{ course_moodle_rb.show(id) }.to raise_error(
77
+ MoodleRb::MoodleError,
78
+ 'Invalid token - token not found'
79
+ )
80
+ end
81
+ end
62
82
  end
63
83
 
64
84
  describe '#destroy', :vcr => {
65
- :match_requests_on => [:headers], :record => :once
85
+ :match_requests_on => [:path], :record => :once
66
86
  } do
67
- let(:id) { course_moodle_rb.create(params)['id'] }
68
- let(:result) { course_moodle_rb.destroy(id) }
87
+ context 'when using valid token' do
88
+ let(:id) { course_moodle_rb.create(params)['id'] }
89
+ let(:result) { course_moodle_rb.destroy(id) }
69
90
 
70
- specify do
71
- expect(result).to eq true
91
+ specify do
92
+ expect(result).to be_a Hash
93
+ expect(result['warnings']).to be_a Array
94
+ expect(result['warnings']).to be_empty
95
+ end
96
+
97
+ context 'when using invalid course id' do
98
+ let(:result) { course_moodle_rb.destroy(-1) }
99
+
100
+ specify do
101
+ expect(result).to be_a Hash
102
+ expect(result['warnings']).to be_a Array
103
+ expect(result['warnings'][0]['warningcode']).to eq 'unknowncourseidnumber'
104
+ end
105
+ end
106
+ end
107
+
108
+ context 'when using invalid token' do
109
+ let(:token) { '' }
110
+ specify do
111
+ expect{ course_moodle_rb.destroy(-1) }.to raise_error(
112
+ MoodleRb::MoodleError,
113
+ 'Invalid token - token not found'
114
+ )
115
+ end
72
116
  end
73
117
  end
74
118
 
75
119
  describe '#enrolled_users', :vcr => {
76
- :match_requests_on => [:headers], :record => :once
120
+ :match_requests_on => [:path], :record => :once
77
121
  } do
78
122
  let(:course_id) { 8 }
79
- let!(:enrolled_user) do
80
- MoodleRb.new(token, url).enrolments.create(
81
- :user_id => 3, :course_id => course_id)
123
+
124
+ context 'when using valid token' do
125
+ let!(:enrolled_user) do
126
+ MoodleRb.new(token, url).enrolments.create(
127
+ :user_id => 3, :course_id => course_id)
128
+ end
129
+ let(:result) { course_moodle_rb.enrolled_users(course_id) }
130
+ let(:enrolment) { result.first }
131
+
132
+ specify do
133
+ expect(result).to be_a Array
134
+ expect(enrolment).to have_key 'id'
135
+ expect(enrolment).to have_key 'enrolledcourses'
136
+ end
82
137
  end
83
- let(:result) { course_moodle_rb.enrolled_users(course_id) }
84
- let(:enrolment) { result.first }
85
138
 
86
- specify do
87
- expect(result).to be_a Array
88
- expect(enrolment).to have_key 'id'
89
- expect(enrolment).to have_key 'enrolledcourses'
139
+ context 'when using invalid token' do
140
+ let(:token) { '' }
141
+ specify do
142
+ expect{ course_moodle_rb.enrolled_users(course_id) }.to raise_error(
143
+ MoodleRb::MoodleError,
144
+ 'Invalid token - token not found'
145
+ )
146
+ end
147
+ end
148
+ end
149
+
150
+ describe '#grade_items', :vcr => {
151
+ :match_requests_on => [:path], :record => :once
152
+ } do
153
+ let(:course_id) { 5 }
154
+
155
+ context 'when using valid token' do
156
+ let(:result) { course_moodle_rb.grade_items(course_id) }
157
+ let(:user_grades) { result.first }
158
+
159
+ specify do
160
+ expect(result).to be_a Array
161
+ expect(user_grades).to have_key 'gradeitems'
162
+ end
163
+ end
164
+
165
+ context 'when using invalid token' do
166
+ let(:token) { '' }
167
+ specify do
168
+ expect{ course_moodle_rb.grade_items(course_id) }.to raise_error(
169
+ MoodleRb::MoodleError,
170
+ 'Invalid token - token not found'
171
+ )
172
+ end
173
+ end
174
+ end
175
+
176
+ describe '#contents', :vcr => {
177
+ :match_requests_on => [:path], :record => :once
178
+ } do
179
+ let(:course_id) { 5 }
180
+
181
+ context 'when using valid token' do
182
+ let(:result) { course_moodle_rb.contents(course_id) }
183
+ let(:enrolment) { result.first }
184
+
185
+ specify do
186
+ expect(result).to be_a Hash
187
+ expect(result).to have_key 'modules'
188
+ end
189
+ end
190
+
191
+ context 'when using invalid token' do
192
+ let(:token) { '' }
193
+ specify do
194
+ expect{ course_moodle_rb.contents(course_id) }.to raise_error(
195
+ MoodleRb::MoodleError,
196
+ 'Invalid token - token not found'
197
+ )
198
+ end
199
+ end
200
+ end
201
+
202
+ describe '#module', :vcr => {
203
+ :match_requests_on => [:path], :record => :once
204
+ } do
205
+ let(:course_module_id) { 21 }
206
+
207
+ context 'when using valid token' do
208
+ let(:result) { course_moodle_rb.module(course_module_id) }
209
+
210
+ specify do
211
+ expect(result).to be_a Hash
212
+ expect(result).to have_key 'name'
213
+ expect(result).to have_key 'gradepass'
214
+ end
215
+ end
216
+
217
+ context 'when using invalid token' do
218
+ let(:token) { '' }
219
+ specify do
220
+ expect{ course_moodle_rb.module(course_module_id) }.to raise_error(
221
+ MoodleRb::MoodleError,
222
+ 'Invalid token - token not found'
223
+ )
224
+ end
90
225
  end
91
226
  end
92
227
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Enrolments do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:enrolment_moodle_rb) { MoodleRb.new(token, url).enrolments }
7
7
 
8
8
  describe '#create', :vcr => {
9
- :match_requests_on => [:headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:params) do
12
12
  {
@@ -36,4 +36,37 @@ describe MoodleRb::Enrolments do
36
36
  end
37
37
  end
38
38
  end
39
+
40
+ describe '#destroy', :vcr => {
41
+ :match_requests_on => [:path], :record => :once
42
+ } do
43
+ let(:params) do
44
+ {
45
+ :user_id => '7',
46
+ :course_id => '5'
47
+ }
48
+ end
49
+
50
+ let(:result) { enrolment_moodle_rb.destroy(params) }
51
+
52
+ specify do
53
+ expect(result).to eq true
54
+ end
55
+
56
+ context 'when user or course id is invalid' do
57
+ let(:params) do
58
+ {
59
+ :user_id => 9999,
60
+ :course_id => 9999
61
+ }
62
+ end
63
+
64
+ specify do
65
+ expect{ result }.to raise_error(
66
+ MoodleRb::MoodleError,
67
+ "Can't find data record in database table course."
68
+ )
69
+ end
70
+ end
71
+ end
39
72
  end
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Grades do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:grade_moodle_rb) { MoodleRb.new(token, url).grades }
7
7
 
8
8
  describe '#by_assignment', :vcr => {
9
- :match_requests_on => [:body, :headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:assignment_id) { 1 }
12
12
  let(:result) { grade_moodle_rb.by_assignment(assignment_id) }
@@ -18,7 +18,7 @@ describe MoodleRb::Grades do
18
18
  end
19
19
 
20
20
  describe '#by_course', :vcr => {
21
- :match_requests_on => [:headers], :record => :once
21
+ :match_requests_on => [:path], :record => :once
22
22
  } do
23
23
  let(:course_id) { 8 }
24
24
  let(:user_ids) { 5 }
@@ -1,12 +1,12 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe MoodleRb::Users do
4
- let(:url) { ENV['MOODLE_URL'] || 'localhost' }
5
- let(:token) { ENV['MOODLE_TOKEN'] || '' }
4
+ let(:url) { ENV['MOODLE_URL'] || 'localhost:8888/moodle28' }
5
+ let(:token) { ENV['MOODLE_TOKEN'] || '60fc9c9415259404795094957e4ab32f' }
6
6
  let(:user_moodle_rb) { MoodleRb.new(token, url).users }
7
7
 
8
8
  describe '#create', :vcr => {
9
- :match_requests_on => [:headers], :record => :once
9
+ :match_requests_on => [:path], :record => :once
10
10
  } do
11
11
  let(:params) do
12
12
  {
@@ -43,7 +43,7 @@ describe MoodleRb::Users do
43
43
  end
44
44
 
45
45
  describe '#show', :vcr => {
46
- :match_requests_on => [:headers], :record => :once
46
+ :match_requests_on => [:path], :record => :once
47
47
  } do
48
48
  let(:id) { 5 }
49
49
  let(:result) { user_moodle_rb.show(id) }
@@ -52,10 +52,20 @@ describe MoodleRb::Users do
52
52
  expect(result).to be_a Hash
53
53
  expect(result['id']).to eq 5
54
54
  end
55
+
56
+ context 'when using invalid token' do
57
+ let(:token) { '' }
58
+ specify do
59
+ expect{ user_moodle_rb.show(id) }.to raise_error(
60
+ MoodleRb::MoodleError,
61
+ 'Invalid token - token not found'
62
+ )
63
+ end
64
+ end
55
65
  end
56
66
 
57
67
  describe '#destroy', :vcr => {
58
- :match_requests_on => [:headers], :record => :once
68
+ :match_requests_on => [:path], :record => :once
59
69
  } do
60
70
  let(:id) { 5 }
61
71
  let(:result) { user_moodle_rb.destroy(id) }
@@ -67,13 +77,26 @@ describe MoodleRb::Users do
67
77
  context 'when id does not exist' do
68
78
  let(:id) { 999 }
69
79
  specify do
70
- expect(result).to eq false
80
+ expect{ result }.to raise_error(
81
+ MoodleRb::MoodleError,
82
+ 'Invalid user'
83
+ )
84
+ end
85
+ end
86
+
87
+ context 'when using invalid token' do
88
+ let(:token) { '' }
89
+ specify do
90
+ expect{ user_moodle_rb.destroy(-1) }.to raise_error(
91
+ MoodleRb::MoodleError,
92
+ 'Invalid token - token not found'
93
+ )
71
94
  end
72
95
  end
73
96
  end
74
97
 
75
98
  describe '#enrolled_courses', :vcr => {
76
- :match_requests_on => [:headers], :record => :once
99
+ :match_requests_on => [:path], :record => :once
77
100
  } do
78
101
  let(:user_id) { 3 }
79
102
  let(:result) { user_moodle_rb.enrolled_courses(user_id) }
@@ -83,10 +106,20 @@ describe MoodleRb::Users do
83
106
  expect(result).to be_a Array
84
107
  expect(enrolment).to have_key 'shortname'
85
108
  end
109
+
110
+ context 'when using invalid token' do
111
+ let(:token) { '' }
112
+ specify do
113
+ expect{ user_moodle_rb.enrolled_courses(user_id) }.to raise_error(
114
+ MoodleRb::MoodleError,
115
+ 'Invalid token - token not found'
116
+ )
117
+ end
118
+ end
86
119
  end
87
120
 
88
121
  describe '#search', :vcr => {
89
- :match_requests_on => [:headers], :record => :once
122
+ :match_requests_on => [:path], :record => :once
90
123
  } do
91
124
  let(:results) { user_moodle_rb.search({ :firstname => 'Guest%' }) }
92
125
 
@@ -95,10 +128,49 @@ describe MoodleRb::Users do
95
128
  expect(results.first).to be_a Hash
96
129
  expect(results.first['firstname']).to eq 'Guest user'
97
130
  end
131
+
132
+ context 'when using invalid token' do
133
+ let(:token) { '' }
134
+ specify do
135
+ expect{ user_moodle_rb.search({ :firstname => '%' }) }.to raise_error(
136
+ MoodleRb::MoodleError,
137
+ 'Invalid token - token not found'
138
+ )
139
+ end
140
+ end
141
+ end
142
+
143
+ describe '#search_identity', :vcr => {
144
+ :match_requests_on => [:path], :record => :once
145
+ } do
146
+ let(:results) { user_moodle_rb.search_identity('moodle_student@mailinator.com') }
147
+
148
+ specify do
149
+ expect(results).to be_a Array
150
+ expect(results.first).to be_a Hash
151
+ expect(results.first['id']).to eq 25
152
+ expect(results.first['fullname']).to eq 'Moodle Student'
153
+ expect(results.first['extrafields'].first['name']).to eq 'idnumber'
154
+ expect(results.first['extrafields'].first['value']).to eq 'MS01'
155
+ expect(results.first['extrafields'].last['name']).to eq 'email'
156
+ expect(results.first['extrafields'].last['value']).to eq 'moodle_student@mailinator.com'
157
+ end
158
+
159
+ context 'when using invalid token' do
160
+ let(:token) { '' }
161
+ specify do
162
+ expect do
163
+ user_moodle_rb.search_identity('moodle_student@mailinator.com')
164
+ end.to raise_error(
165
+ MoodleRb::MoodleError,
166
+ 'Invalid token - token not found'
167
+ )
168
+ end
169
+ end
98
170
  end
99
171
 
100
172
  describe '#update', :vcr => {
101
- :match_requests_on => [:headers], :record => :once
173
+ :match_requests_on => [:path], :record => :once
102
174
  } do
103
175
  let(:user_id) { 4 }
104
176
  let(:result) do
@@ -108,5 +180,17 @@ describe MoodleRb::Users do
108
180
  specify do
109
181
  expect(result).to eq true
110
182
  end
183
+
184
+ context 'when using invalid token' do
185
+ let(:token) { '' }
186
+ specify do
187
+ expect do
188
+ user_moodle_rb.update(:id => user_id, :email => '')
189
+ end.to raise_error(
190
+ MoodleRb::MoodleError,
191
+ 'Invalid token - token not found'
192
+ )
193
+ end
194
+ end
111
195
  end
112
196
  end